From 3f661c52b7943f907ec25bf1cac4cfb2c000d6e7 Mon Sep 17 00:00:00 2001 From: Chris Garrett Date: Thu, 7 Nov 2019 13:25:03 -0800 Subject: [PATCH 1/3] Add @glimmer/component types test --- .travis.yml | 5 + package.json | 2 + test/types/component-test.ts | 76 +++++++++++++ test/types/index.d.ts | 1 + test/types/tsconfig.json | 37 ++++++ test/types/tslint.json | 23 ++++ test/types/utils.ts | 35 ++++++ yarn.lock | 211 ++++++++++++++++++++++++++++++++++- 8 files changed, 385 insertions(+), 5 deletions(-) create mode 100644 test/types/component-test.ts create mode 100644 test/types/index.d.ts create mode 100644 test/types/tsconfig.json create mode 100644 test/types/tslint.json create mode 100644 test/types/utils.ts diff --git a/.travis.yml b/.travis.yml index 77f58b060..ae2c8ae1a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,6 +33,11 @@ jobs: script: yarn test - name: Lint script: yarn tslint + - name: Type Lint + script: + - yarn build + - yarn dtslint --installAll + - yarn test:types - stage: Ember Tests name: Node diff --git a/package.json b/package.json index 3ca0b0caf..ae385b11a 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "test:node": "bin/run-node-tests.js", "test:ember": "yarn workspace @glimmer/component ember try:one", "test:ember:node": "yarn workspace @glimmer/component test:node", + "test:types": "dtslint test/types", "tslint": "tslint --project tsconfig.json", "problems": "tsc -p tsconfig.json --noEmit" }, @@ -60,6 +61,7 @@ "typescript": "~3.2.2" }, "dependencies": { + "dtslint": "^1.0.3", "tslib": "^1.8.0" }, "resolutions": { diff --git a/test/types/component-test.ts b/test/types/component-test.ts new file mode 100644 index 000000000..71b09f081 --- /dev/null +++ b/test/types/component-test.ts @@ -0,0 +1,76 @@ +import * as gc from '@glimmer/component'; +import { DESTROYED, DESTROYING } from '@glimmer/component/dist/types/addon/-private/component'; + +import { hasExactKeys } from './utils'; + +const Component = gc.default; + +hasExactKeys<{ + default: unknown, + setPropertyDidChange: unknown, + tracked: unknown, +}>()(gc); + +// $ExpectType typeof Component +gc.default; + +// $ExpectType () => void +gc.setPropertyDidChange; + +// $ExpectType () => void +gc.tracked; + +type Args = { + foo: number; +}; + +let component = new Component({}, { foo: 123 }); + +hasExactKeys<{ + args: unknown, + bounds: { + firstNode: unknown, + lastNode: unknown, + }, + debugName: unknown, + didInsertElement: unknown, + didUpdate: unknown, + element: unknown, + isDestroying: unknown, + isDestroyed: unknown, + willDestroy: unknown, + + // These are not public API, but technically part of the shape + [DESTROYED]: unknown, + [DESTROYING]: unknown, +}>()(component); + +// $ExpectType Args +component.args; + +// $ExpectType Bounds +component.bounds; + +// $ExpectType string +component.debugName; + +// $ExpectType () => void +component.didInsertElement; + +// $ExpectType () => void +component.didUpdate; + +// $ExpectType HTMLElement +component.element; + +// $ExpectType boolean +component.isDestroying; + +// $ExpectType boolean +component.isDestroyed; + +// $ExpectType () => void +component.willDestroy; + +// $ExpectError +component.args.bar = 123; diff --git a/test/types/index.d.ts b/test/types/index.d.ts new file mode 100644 index 000000000..6405dafca --- /dev/null +++ b/test/types/index.d.ts @@ -0,0 +1 @@ +// TypeScript Version: 3.1 diff --git a/test/types/tsconfig.json b/test/types/tsconfig.json new file mode 100644 index 000000000..151648d63 --- /dev/null +++ b/test/types/tsconfig.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + // Compilation Configuration + "target": "es2017", + "lib": ["es6", "dom"], + "inlineSources": true, + "inlineSourceMap": true, + "declaration": true, + "baseUrl": ".", + "importHelpers": true, + + // Environment Configuration + "experimentalDecorators": true, + "moduleResolution": "node", + + // Enhance Strictness + "noUnusedLocals": true, + "noImplicitThis": true, + // Enabling these breaks @glimmer/application, fix and reenable this + "noImplicitAny": false, + "suppressImplicitAnyIndexErrors": false, + "noUnusedParameters": false, + "strictNullChecks": false, + "strictFunctionTypes": false, + "allowUnreachableCode": false, + "noImplicitReturns": false, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + + "newLine": "LF", + "noEmit": true, + + "paths": { + "@glimmer/*": ["../../dist/@glimmer/*"] + } + } +} diff --git a/test/types/tslint.json b/test/types/tslint.json new file mode 100644 index 000000000..88eb4c731 --- /dev/null +++ b/test/types/tslint.json @@ -0,0 +1,23 @@ +{ + "extends": "dtslint/dtslint.json", + "rules": { + "function-constructor": false, + "interface-name": false, + "interface-over-type-literal": false, + "label-position": false, + "member-access": false, + "no-empty-interface": false, + "no-eval": false, + "no-object-literal-type-assertion": false, + "no-unnecessary-class": false, + "no-unnecessary-generics": false, + "no-useless-files": false, + "only-arrow-functions": false, + "prefer-const": false, + "prefer-object-spread": false, + "prefer-switch": false, + "no-construct": false, + "prefer-while": false, + "radix": false + } +} diff --git a/test/types/utils.ts b/test/types/utils.ts new file mode 100644 index 000000000..ae3a65df9 --- /dev/null +++ b/test/types/utils.ts @@ -0,0 +1,35 @@ +type ValidateStructure = + T extends Struct ? + Exclude extends never ? T : never : never; + +/** + * Validates the _keys_ of an object. This tells us that it has exactly the + * keys that we expect to exist, preventing new APIs from being added and old + * APIs from being removed, but does not give us safety around the _types_ of + * those values. e.g. + * + * ```ts + * // This passes, but is not correct + * hasExactKeys<{ foo: any }>()({ foo: 123 }); + * + * // This also passes, but is not correct + * let obj: { foo: any } = { foo: undefined }; + * hasExactKeys<{ foo: number }>()(obj); + * ``` + * + * In general, you should use this to verify keys using `unknown`, then use + * `$ExpectType` to check the actual type: + * + * ```ts + * let obj: { foo: any } = { foo: undefined }; + * + * hasExactKeys<{ foo: unknown }>()(obj); + * + * /// (Tripple forward slash here so dtslint doesn't pick up the example) + * /// $ExpectType any + * obj.foo; + * ``` + */ +export function hasExactKeys() { + return function (value: ValidateStructure) { }; +} diff --git a/yarn.lock b/yarn.lock index a0e249211..1134464f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1635,6 +1635,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.11.tgz#971ea8cb91adbe0b74e3fbd867dec192d5893a5f" integrity sha512-FM7tvbjbn2BUzM/Qsdk9LUGq3zeh7li8NcHoS398dBzqLzfmSqSP1+yKbMRTCcZzLcu2JAR5lq3IKIEYkto7iQ== +"@types/parsimmon@^1.3.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.0.tgz#ffb81cb023ff435a41d4710a29ab23c561dc9fdf" + integrity sha512-bsTIJFVQv7jnvNiC42ld2pQW2KRI+pAG243L+iATvqzy3X6+NH1obz2itRKDZZ8VVhN3wjwYax/VBGCcXzgTqQ== + "@types/qunit@^2.0.31": version "2.5.0" resolved "https://registry.yarnpkg.com/@types/qunit/-/qunit-2.5.0.tgz#fab886ca4160ba8bf299b146a8f54ee3057c8e32" @@ -1754,6 +1759,16 @@ ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" +ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -2084,6 +2099,11 @@ aws4@^1.6.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" integrity sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w== +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -4174,6 +4194,18 @@ combined-stream@1.0.6, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-exists@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" + integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== + commander@2.12.2: version "2.12.2" resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" @@ -4661,6 +4693,22 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +definitelytyped-header-parser@3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/definitelytyped-header-parser/-/definitelytyped-header-parser-3.8.0.tgz#9d4b9d97f8c4c1abd62af736283247b527a4a8f1" + integrity sha512-CjVhNRDk4TeNcuibX5BAGLafwZSypnUR6QqVsNlLB5v5vZbcHM+v6qyNOGyQUV4mVEx3NhQvTJvzMJj4h4QWVQ== + dependencies: + "@types/parsimmon" "^1.3.0" + parsimmon "^1.2.0" + +definitelytyped-header-parser@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/definitelytyped-header-parser/-/definitelytyped-header-parser-3.8.1.tgz#b24d83c03c8f2a09918aab241861d5bea2dd0b10" + integrity sha512-+uZhvbiVrNUHY1v3wlmnrWY3+jd4o8rLEho93CHrghbSzTixK5o7QdL66Rb2hmW/9nikGAarn1mBRhRyKKfyzQ== + dependencies: + "@types/parsimmon" "^1.3.0" + parsimmon "^1.2.0" + del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" @@ -4759,6 +4807,35 @@ dot-prop@^4.1.0: dependencies: is-obj "^1.0.0" +download-file-sync@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/download-file-sync/-/download-file-sync-1.0.4.tgz#d3e3c543f836f41039455b9034c72e355b036019" + integrity sha1-0+PFQ/g29BA5RVuQNMcuNVsDYBk= + +dts-critic@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dts-critic/-/dts-critic-2.2.1.tgz#915517d41a941b4caf66d9483982d0efda1c1794" + integrity sha512-oFynJ0Hq0ctLwksIE/cHTGNl94rOgy2CBb2Hpv4jYuByQTaeYNj/invH5yvTf517usmcpPgG/5W0FgAifEFHfA== + dependencies: + command-exists "^1.2.8" + definitelytyped-header-parser "^3.8.1" + download-file-sync "^1.0.4" + semver "^6.2.0" + yargs "^12.0.5" + +dtslint@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-1.0.3.tgz#91c1c9aa76671aa4b576710c745fbe335aca05a7" + integrity sha512-EC+zQOwJWum4EAIwd/xIq1qIp8CTYgMK9YAhaqyCTJS/DcL05PzviptulILOwR8bXPx6oceExdcP9Dc4UyVomg== + dependencies: + definitelytyped-header-parser "3.8.0" + dts-critic "^2.2.0" + fs-extra "^6.0.1" + request "^2.88.0" + strip-json-comments "^2.0.1" + tslint "5.14.0" + typescript next + duplex@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/duplex/-/duplex-1.0.0.tgz#6abc5c16ec17e4c578578727126700590d3a2dda" @@ -6084,7 +6161,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -6148,6 +6225,11 @@ fast-deep-equal@^1.0.0: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + fast-diff@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" @@ -6416,6 +6498,15 @@ form-data@~2.3.1: combined-stream "1.0.6" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -6984,6 +7075,14 @@ har-validator@~5.0.3: ajv "^5.1.0" har-schema "^2.0.0" +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -7930,6 +8029,11 @@ json-schema-traverse@^0.3.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -8946,6 +9050,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + "mime-db@>= 1.36.0 < 2": version "1.38.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" @@ -8975,6 +9084,13 @@ mime-types@^2.1.18, mime-types@^2.1.19, mime-types@~2.1.18: dependencies: mime-db "~1.37.0" +mime-types@~2.1.19: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" @@ -9428,6 +9544,11 @@ oauth-sign@~0.8.2: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" @@ -9792,6 +9913,11 @@ parseurl@~1.3.2: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= +parsimmon@^1.2.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/parsimmon/-/parsimmon-1.13.0.tgz#6e4ef3dbd45ed6ea6808be600ac4b9c8a44228cf" + integrity sha512-5UIrOCW+gjbILkjKPgTgmq8LKf8TT3Iy7kN2VD7OtQ81facKn8B4gG1X94jWqXYZsxG2KbJhrv/Yq/5H6BQn7A== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -10055,6 +10181,11 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= +psl@^1.1.24: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -10105,12 +10236,17 @@ punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + q@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= -qs@6.5.2: +qs@6.5.2, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== @@ -10558,6 +10694,32 @@ request@2.85.0, request@^2.51.0: tunnel-agent "^0.6.0" uuid "^3.1.0" +request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -10948,7 +11110,7 @@ semver@^5.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@^6.3.0: +semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -11565,7 +11727,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -11915,6 +12077,14 @@ tough-cookie@~2.3.3: dependencies: punycode "^1.4.1" +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + tree-sync@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.4.0.tgz#314598d13abaf752547d9335b8f95d9a137100d6" @@ -11960,6 +12130,25 @@ tslint-plugin-prettier@^2.0.1: lines-and-columns "^1.1.6" tslib "^1.7.1" +tslint@5.14.0: + version "5.14.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.14.0.tgz#be62637135ac244fc9b37ed6ea5252c9eba1616e" + integrity sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ== + dependencies: + babel-code-frame "^6.22.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.7.0" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + tslint@^5.11.0: version "5.12.1" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.12.1.tgz#8cec9d454cf8a1de9b0a26d7bdbad6de362e52c1" @@ -11978,7 +12167,7 @@ tslint@^5.11.0: tslib "^1.8.0" tsutils "^2.27.2" -tsutils@^2.27.2: +tsutils@^2.27.2, tsutils@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== @@ -12042,6 +12231,11 @@ typescript@^2.9.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== +typescript@next: + version "3.8.0-dev.20191105" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.0-dev.20191105.tgz#84936856168f081f8ffd67441c76f439c97fb9b7" + integrity sha512-bKujrrC0aQRihwWPuavqvlCArHqwXqGmUTwzpyojkTiHBMbfuuVxqM5fYDYLALe6B1eRGm5bFeNtFF/d/8CpCQ== + typescript@~3.2.1: version "3.2.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d" @@ -12195,6 +12389,13 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" From 36063d46ca97548619035c0d788377ac26b32376 Mon Sep 17 00:00:00 2001 From: Chris Garrett Date: Tue, 5 Nov 2019 17:29:34 -0800 Subject: [PATCH 2/3] [UPDATE] Updates Glimmer-VM and Typescript Updates the Glimmer-VM, and Typescript/ember-cli-typescript. The update to TS was necessary due to updates from the Glimmer-VM. Updating ec-typescript to make sure that published types near the same version that it supports also seems to make sense. --- package.json | 6 +- packages/@glimmer/app-compiler/package.json | 8 +- .../application-test-helpers/package.json | 14 +- packages/@glimmer/application/package.json | 18 +- .../components/component-managers/custom.ts | 6 +- .../component-managers/template-only.ts | 10 +- .../src/loaders/runtime-compiler/loader.ts | 7 +- .../@glimmer/blueprint/files/package.json | 4 +- .../@glimmer/compiler-delegates/package.json | 14 +- packages/@glimmer/component/package.json | 14 +- packages/@glimmer/ssr/package.json | 10 +- packages/@glimmer/tracking/package.json | 14 +- yarn.lock | 418 +++++++++++------- 13 files changed, 322 insertions(+), 221 deletions(-) diff --git a/package.json b/package.json index ae385b11a..e417af838 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "broccoli-merge-trees": "^2.0.0", "broccoli-persistent-filter": "^1.2.13", "broccoli-rollup": "^1.3.0", - "broccoli-typescript-compiler": "^4.1.0", + "broccoli-typescript-compiler": "^4.2.0", "child_process": "^1.0.2", "dag-map": "^2.0.2", "ember-build-utilities": "^0.4.0", @@ -58,7 +58,7 @@ "tslint": "^5.11.0", "tslint-config-prettier": "^1.15.0", "tslint-plugin-prettier": "^2.0.1", - "typescript": "~3.2.2" + "typescript": "~3.5.3" }, "dependencies": { "dtslint": "^1.0.3", @@ -78,4 +78,4 @@ "deprecation": ":warning: Deprecation" } } -} \ No newline at end of file +} diff --git a/packages/@glimmer/app-compiler/package.json b/packages/@glimmer/app-compiler/package.json index 019de2df7..eed1d2538 100644 --- a/packages/@glimmer/app-compiler/package.json +++ b/packages/@glimmer/app-compiler/package.json @@ -13,9 +13,9 @@ "dependencies": { "@glimmer/application": "^1.0.0-beta.1", "@glimmer/compiler-delegates": "^1.0.0-beta.1", - "@glimmer/bundle-compiler": "^0.42.0", - "@glimmer/interfaces": "^0.42.0", - "@glimmer/opcode-compiler": "^0.42.0", + "@glimmer/bundle-compiler": "^0.43.0", + "@glimmer/interfaces": "^0.43.0", + "@glimmer/opcode-compiler": "^0.43.0", "broccoli-plugin": "^1.3.0", "debug": "^3.1.0", "walk-sync": "^0.3.2" @@ -24,4 +24,4 @@ "broccoli-stew": "^1.5.0", "broccoli-test-helper": "^1.2.0" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/application-test-helpers/package.json b/packages/@glimmer/application-test-helpers/package.json index 3a3219c47..ab7b9dfd1 100644 --- a/packages/@glimmer/application-test-helpers/package.json +++ b/packages/@glimmer/application-test-helpers/package.json @@ -15,14 +15,14 @@ "module": "dist/modules/es2017/index.js", "types": "dist/types/index.d.ts", "dependencies": { - "@glimmer/compiler": "^0.42.0", + "@glimmer/compiler": "^0.43.0", "@glimmer/di": "^0.1.9", "@glimmer/env": "^0.1.7", - "@glimmer/interfaces": "^0.42.0", - "@glimmer/reference": "^0.42.0", + "@glimmer/interfaces": "^0.43.0", + "@glimmer/reference": "^0.43.0", "@glimmer/resolver": "^0.3.0", - "@glimmer/runtime": "^0.42.0", - "@glimmer/util": "^0.42.0", - "@glimmer/wire-format": "^0.42.0" + "@glimmer/runtime": "^0.43.0", + "@glimmer/util": "^0.43.0", + "@glimmer/wire-format": "^0.43.0" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/application/package.json b/packages/@glimmer/application/package.json index afe1a5488..d68398b9b 100644 --- a/packages/@glimmer/application/package.json +++ b/packages/@glimmer/application/package.json @@ -15,25 +15,25 @@ "dist" ], "dependencies": { - "@glimmer/compiler": "^0.42.0", + "@glimmer/compiler": "^0.43.0", "@glimmer/component": "^1.0.0-beta.1", "@glimmer/di": "^0.1.9", "@glimmer/env": "^0.1.7", - "@glimmer/interfaces": "^0.42.0", - "@glimmer/opcode-compiler": "^0.42.0", - "@glimmer/reference": "^0.42.0", + "@glimmer/interfaces": "^0.43.0", + "@glimmer/opcode-compiler": "^0.43.0", + "@glimmer/reference": "^0.43.0", "@glimmer/resolver": "^0.3.0", - "@glimmer/runtime": "^0.42.0", - "@glimmer/util": "^0.42.0", + "@glimmer/runtime": "^0.43.0", + "@glimmer/util": "^0.43.0", "@simple-dom/interface": "^1.4.0" }, "devDependencies": { "@glimmer/application-test-helpers": "^1.0.0-beta.1", - "@glimmer/bundle-compiler": "^0.42.0", + "@glimmer/bundle-compiler": "^0.43.0", "@glimmer/component": "^1.0.0-beta.1", - "@glimmer/wire-format": "^0.42.0", + "@glimmer/wire-format": "^0.43.0", "@simple-dom/document": "^1.4.0", "@simple-dom/serializer": "^1.4.0", "@simple-dom/void-map": "^1.4.0" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/application/src/components/component-managers/custom.ts b/packages/@glimmer/application/src/components/component-managers/custom.ts index d06ec1a87..c692cdd4a 100644 --- a/packages/@glimmer/application/src/components/component-managers/custom.ts +++ b/packages/@glimmer/application/src/components/component-managers/custom.ts @@ -13,6 +13,7 @@ import { JitRuntimeResolver, WithJitStaticLayout, Template, + TemplateOk, Environment, Invocation, CompilableProgram, @@ -24,6 +25,7 @@ import { Capabilities } from '../capabilities'; import { RootReference } from '../../references'; import Bounds from '../bounds'; import { JitComponentDefinition, AotComponentDefinition } from '../component-definition'; +import { unwrapTemplate } from '@glimmer/opcode-compiler'; export const CAPABILITIES: ComponentCapabilities = { createInstance: true, @@ -345,7 +347,7 @@ export class CustomComponentDefinition implements AotComponen public manager = CUSTOM_COMPONENT_MANAGER as CustomComponentManager; public handle: number; public symbolTable: ProgramSymbolTable; - public template: Template; + public template: TemplateOk; constructor( name: string, @@ -358,7 +360,7 @@ export class CustomComponentDefinition implements AotComponen this.handle = templateOrHandle; this.symbolTable = symbolTable; } else { - this.template = templateOrHandle; + this.template = unwrapTemplate(templateOrHandle); } this.state = { diff --git a/packages/@glimmer/application/src/components/component-managers/template-only.ts b/packages/@glimmer/application/src/components/component-managers/template-only.ts index 0949a0327..3f90fe56c 100644 --- a/packages/@glimmer/application/src/components/component-managers/template-only.ts +++ b/packages/@glimmer/application/src/components/component-managers/template-only.ts @@ -13,6 +13,7 @@ import { AotRuntimeResolver, CompilableProgram, Template, + TemplateOk, WithJitStaticLayout, ProgramSymbolTable, } from '@glimmer/interfaces'; @@ -25,6 +26,7 @@ import { AotComponentDefinition, JitComponentDefinition, } from '../component-definition'; +import { unwrapTemplate } from '@glimmer/opcode-compiler'; export const CAPABILITIES: ComponentCapabilities = { attributeHook: false, @@ -149,14 +151,14 @@ export class TemplateOnlyComponentDefinition public manager = TEMPLATE_ONLY_MANAGER; public handle: number; public symbolTable: ProgramSymbolTable; - public template: Template; + public template: TemplateOk; - constructor(name: string, templateOrHandle: Template | number, symbolTable?: ProgramSymbolTable) { + constructor(name?: string, templateOrHandle?: Template | number, symbolTable?: ProgramSymbolTable) { if (typeof templateOrHandle === 'number') { this.handle = templateOrHandle; this.symbolTable = symbolTable; - } else { - this.template = templateOrHandle; + } else if (templateOrHandle !== undefined) { + this.template = unwrapTemplate(templateOrHandle); } this.state = { diff --git a/packages/@glimmer/application/src/loaders/runtime-compiler/loader.ts b/packages/@glimmer/application/src/loaders/runtime-compiler/loader.ts index dddda3694..5144ae98d 100644 --- a/packages/@glimmer/application/src/loaders/runtime-compiler/loader.ts +++ b/packages/@glimmer/application/src/loaders/runtime-compiler/loader.ts @@ -1,5 +1,5 @@ import { RenderComponentArgs, CustomJitRuntime, renderJitMain, renderJitComponent, getDynamicVar } from '@glimmer/runtime'; -import { templateFactory, JitContext } from '@glimmer/opcode-compiler'; +import { templateFactory, JitContext, unwrapTemplate, unwrapHandle } from '@glimmer/opcode-compiler'; import { PathReference } from '@glimmer/reference'; import { Environment, ElementBuilder, DynamicScope, TemplateIterator } from '@glimmer/interfaces'; @@ -36,7 +36,8 @@ export default class RuntimeCompilerLoader implements Loader { let context = this.getContext(resolver); let runtime = CustomJitRuntime(resolver, context, app.env); - let mainLayout = templateFactory(mainTemplate).create(); + let mainLayout = unwrapTemplate(templateFactory(mainTemplate).create()); + let handle = unwrapHandle(mainLayout.asLayout().compile(context)); return Promise.resolve( renderJitMain( @@ -44,7 +45,7 @@ export default class RuntimeCompilerLoader implements Loader { context, self, builder, - mainLayout.asLayout().compile(context), + handle, dynamicScope ) ); diff --git a/packages/@glimmer/blueprint/files/package.json b/packages/@glimmer/blueprint/files/package.json index 00c816db6..fbc7a8c05 100644 --- a/packages/@glimmer/blueprint/files/package.json +++ b/packages/@glimmer/blueprint/files/package.json @@ -30,10 +30,10 @@ "ember-template-lint": "^1.0.0-beta.6", "ember-cli-uglify": "^2.0.0-beta.1", "qunitjs": "^2.3.3", - "typescript": "~3.2.1" + "typescript": "~3.5.3" }, "engines": { "node": ">= 4.0" }, "private": true -} \ No newline at end of file +} diff --git a/packages/@glimmer/compiler-delegates/package.json b/packages/@glimmer/compiler-delegates/package.json index bc802aa1c..b03ad24c6 100644 --- a/packages/@glimmer/compiler-delegates/package.json +++ b/packages/@glimmer/compiler-delegates/package.json @@ -12,13 +12,13 @@ "types": "dist/types/index.d.ts", "dependencies": { "@glimmer/application": "^1.0.0-beta.1", - "@glimmer/bundle-compiler": "^0.42.0", + "@glimmer/bundle-compiler": "^0.43.0", "@glimmer/component": "^1.0.0-beta.1", - "@glimmer/interfaces": "^0.42.0", - "@glimmer/opcode-compiler": "^0.42.0", - "@glimmer/program": "^0.42.0", - "@glimmer/syntax": "^0.42.0", - "@glimmer/util": "^0.42.0", + "@glimmer/interfaces": "^0.43.0", + "@glimmer/opcode-compiler": "^0.43.0", + "@glimmer/program": "^0.43.0", + "@glimmer/syntax": "^0.43.0", + "@glimmer/util": "^0.43.0", "@types/node": "^8.0.46", "debug": "^3.1.0", "glimmer-analyzer": "^0.3.3", @@ -36,4 +36,4 @@ "rollup": "^0.51.5", "rollup-plugin-virtual": "^1.0.1" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/component/package.json b/packages/@glimmer/component/package.json index 178f110df..46c3f945e 100644 --- a/packages/@glimmer/component/package.json +++ b/packages/@glimmer/component/package.json @@ -30,7 +30,7 @@ "dependencies": { "@glimmer/di": "^0.1.9", "@glimmer/env": "^0.1.7", - "@glimmer/util": "^0.42.0", + "@glimmer/util": "^0.43.0", "broccoli-file-creator": "^2.1.1", "broccoli-merge-trees": "^3.0.2", "ember-cli-babel": "^7.7.3", @@ -39,17 +39,17 @@ "ember-cli-normalize-entity-name": "^1.0.0", "ember-cli-path-utils": "^1.0.0", "ember-cli-string-utils": "^1.1.0", - "ember-cli-typescript": "^2.0.0-rc.1", + "ember-cli-typescript": "3.0.0", "ember-compatibility-helpers": "^1.1.2" }, "devDependencies": { "@ember/optional-features": "^0.6.1", "@glimmer/application-test-helpers": "^1.0.0-beta.1", - "@glimmer/compiler": "^0.42.0", - "@glimmer/interfaces": "^0.42.0", + "@glimmer/compiler": "^0.43.0", + "@glimmer/interfaces": "^0.43.0", "@glimmer/resolver": "^0.3.0", "@glimmer/tracking": "^1.0.0-beta.1", - "@glimmer/wire-format": "^0.42.0", + "@glimmer/wire-format": "^0.43.0", "@types/ember": "~3.0.29", "@types/ember-qunit": "~3.4.3", "@types/ember-test-helpers": "~1.0.4", @@ -85,7 +85,7 @@ "loader.js": "^4.2.3", "mocha": "^5.0.0", "qunit-dom": "^0.7.1", - "typescript": "^2.9.2" + "typescript": "~3.5.3" }, "engines": { "node": "6.* || 8.* || >= 10.*" @@ -95,4 +95,4 @@ "defaultBlueprint": "install-glimmer-component", "main": "ember-addon-main.js" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/ssr/package.json b/packages/@glimmer/ssr/package.json index 87ef565a7..c93bf2e52 100644 --- a/packages/@glimmer/ssr/package.json +++ b/packages/@glimmer/ssr/package.json @@ -14,12 +14,12 @@ "@glimmer/application": "^1.0.0-beta.1", "@glimmer/component": "^1.0.0-beta.1", "@glimmer/di": "^0.1.9", - "@glimmer/node": "^0.42.0", - "@glimmer/reference": "^0.42.0", - "@glimmer/runtime": "^0.42.0", - "@glimmer/util": "^0.42.0", + "@glimmer/node": "^0.43.0", + "@glimmer/reference": "^0.43.0", + "@glimmer/runtime": "^0.43.0", + "@glimmer/util": "^0.43.0", "@simple-dom/document": "^1.4.0", "@simple-dom/serializer": "^1.4.0", "@simple-dom/void-map": "^1.4.0" } -} \ No newline at end of file +} diff --git a/packages/@glimmer/tracking/package.json b/packages/@glimmer/tracking/package.json index 4744e6997..d5282c133 100644 --- a/packages/@glimmer/tracking/package.json +++ b/packages/@glimmer/tracking/package.json @@ -17,15 +17,15 @@ "dependencies": { "@glimmer/di": "^0.1.9", "@glimmer/env": "^0.1.7", - "@glimmer/reference": "^0.42.0", - "@glimmer/runtime": "^0.42.0", - "@glimmer/util": "^0.42.0" + "@glimmer/reference": "^0.43.0", + "@glimmer/runtime": "^0.43.0", + "@glimmer/util": "^0.43.0" }, "devDependencies": { "@glimmer/application-test-helpers": "^1.0.0-beta.1", - "@glimmer/compiler": "^0.42.0", - "@glimmer/interfaces": "^0.42.0", + "@glimmer/compiler": "^0.43.0", + "@glimmer/interfaces": "^0.43.0", "@glimmer/resolver": "^0.3.0", - "@glimmer/wire-format": "^0.42.0" + "@glimmer/wire-format": "^0.43.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 1134464f6..a1b9b4177 100644 --- a/yarn.lock +++ b/yarn.lock @@ -129,17 +129,6 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.3.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.2.tgz#ba1685603eb1c9f2f51c9106d5180135c163fe73" - integrity sha512-tdW8+V8ceh2US4GsYdNVNoohq5uVwOf9k6krjwW4E1lINcHgttnWcNqgdoessn12dAy8QkbezlbQh2nXISNY+A== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.2.3" - "@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" @@ -306,7 +295,7 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.2.3": +"@babel/helper-replace-supers@^7.1.0": version "7.2.3" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz#19970020cf22677d62b3a689561dbd9644d8c5e5" integrity sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA== @@ -420,14 +409,6 @@ "@babel/helper-remap-async-to-generator" "^7.1.0" "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-class-properties@^7.1.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" - integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-class-properties@^7.3.4", "@babel/plugin-proposal-class-properties@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" @@ -947,11 +928,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typescript@^7.1.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.3.2.tgz#59a7227163e55738842f043d9e5bd7c040447d96" - integrity sha512-Pvco0x0ZSCnexJnshMfaibQ5hnK8aUHSvjCQhC1JR8eeg+iBwt0AtCO7gWxJ358zZevuf9wPSO5rv+WJcbHPXQ== +"@babel/plugin-transform-typescript@~7.5.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" + integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" @@ -1218,28 +1200,28 @@ ember-cli-babel "^6.12.0" ember-cli-htmlbars-inline-precompile "^1.0.0" -"@glimmer/bundle-compiler@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/bundle-compiler/-/bundle-compiler-0.42.0.tgz#95d7d3186faf9128d9082aa3b7819b460f2a67f3" - integrity sha512-ejXTRcF6pufUPoOKu2oZe6GmaD+Clqwo/jKMt14D3TNG6+wUo0znGanjQQbVJTJaveD9swIitM/Vk6wGy5J7hw== - dependencies: - "@glimmer/compiler" "^0.42.0" - "@glimmer/interfaces" "^0.42.0" - "@glimmer/opcode-compiler" "^0.42.0" - "@glimmer/program" "^0.42.0" - "@glimmer/syntax" "^0.42.0" - "@glimmer/util" "^0.42.0" - "@glimmer/wire-format" "^0.42.0" - -"@glimmer/compiler@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.42.0.tgz#8c3852e27177bbecd3eed5bdbd15ec729e09ef8a" - integrity sha512-3YkZkVuSv3e78WLYOz9YA1wKa/azFnBKADwcCNRhYpVOp9CHBJq4CzZ2pFcceYrCvL1CGgJ1crZJeuXfpkJyOw== - dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/syntax" "^0.42.0" - "@glimmer/util" "^0.42.0" - "@glimmer/wire-format" "^0.42.0" +"@glimmer/bundle-compiler@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/bundle-compiler/-/bundle-compiler-0.43.0.tgz#9e9113de93b54358a1172f69e349c28054aa9ade" + integrity sha512-pnRRIvu8g4yAI4Mgs7mZp2Tit/xyg7+J4Q5MgiToG0qpk7PoJfQKR+xAW+7WGGWg0O0KEDwM/IAqnoJn7O89sA== + dependencies: + "@glimmer/compiler" "^0.43.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/opcode-compiler" "^0.43.0" + "@glimmer/program" "^0.43.0" + "@glimmer/syntax" "^0.43.0" + "@glimmer/util" "^0.43.0" + "@glimmer/wire-format" "^0.43.0" + +"@glimmer/compiler@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.43.0.tgz#86ee3ece2c5e6a5c2802b9a41eec951dfc981e80" + integrity sha512-B5uBbXdNzKA3LStWucemq5TuRZSQURnOHMpuFZTd70ikFUHY+NBmDNc6eD9rXkK58Moa6TQWktjObHIoLyWzWA== + dependencies: + "@glimmer/interfaces" "^0.43.0" + "@glimmer/syntax" "^0.43.0" + "@glimmer/util" "^0.43.0" + "@glimmer/wire-format" "^0.43.0" "@glimmer/di@^0.1.9": version "0.1.11" @@ -1251,13 +1233,13 @@ resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.2.0.tgz#73bfd4a6ee4148a80bf092e8a5d29bcac9d4ce7e" integrity sha1-c7/Upu5BSKgL8JLopdKbysnUzn4= -"@glimmer/encoder@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.42.0.tgz#ac281405b6fec09aa760547ea8c9ecdd4b169824" - integrity sha512-pucwPUW8V9Xwx5THwe9riKikvBBrvFxxLNw/3hLy9f+Z39oKP4GEc0Wzi6TnhJRJg0i/C16zs0kCE7hpSrNs+g== +"@glimmer/encoder@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/encoder/-/encoder-0.43.0.tgz#0e21f38981d5e72697336fc5b2cb8bdeb500feef" + integrity sha512-ZTG6HFvXFLjei/aFGiQMHUXUpm9xbYTov7CNhz2UVV/CmjEvReH+3EOzGqIKStXuzsPaNFOyJQV9rzQtmJE7lQ== dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/vm" "^0.42.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/vm" "^0.43.0" "@glimmer/env@^0.1.7": version "0.1.7" @@ -1271,52 +1253,52 @@ dependencies: "@glimmer/wire-format" "^0.34.2" -"@glimmer/interfaces@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.42.0.tgz#525f5352dd78011eef7b3eb0e3fb61b981c94319" - integrity sha512-lZlydeRRK3yL6pco0gCstPVuC5XYjBUtql1vSvWTRd+MUO0Chg8kxIvduFVg6f+Xfr1kqWd2YQq1MCMdmfzfvg== - -"@glimmer/low-level@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.42.0.tgz#a4016a32d43daa73df40be0a5478690440f90414" - integrity sha512-uhlV9mVsRnGvVzDth8CioF7LGqYcWGrW6sT+v3rfObNJmbX6C4k52oDdAZAmG89QZGQFJ4g74hTLZbAD7JcyQw== - -"@glimmer/node@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.42.0.tgz#f841d2fa526974c316d89d91d78448712ebcfa5e" - integrity sha512-OPCxcpRoRd1Zl5ZyZV1KzFgFUaWLkxiaKM0KLNhPmuBvuvEe7MeSLCE86hBddaAWXMLfp/s/RWmroO+GK6wfmA== - dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/runtime" "^0.42.0" - -"@glimmer/opcode-compiler@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.42.0.tgz#7f2cc703fb2602b735e5b279ac4fff81b921e4ee" - integrity sha512-l3aOnpAD8FQU7YGSi+COnseCtkRjKcAnXEbAlxoWytp8DMzKHc6Ixsb04pfCCl2rS/hZp/aLHwxrc6WkPnVSOg== - dependencies: - "@glimmer/encoder" "^0.42.0" - "@glimmer/interfaces" "^0.42.0" - "@glimmer/program" "^0.42.0" - "@glimmer/reference" "^0.42.0" - "@glimmer/util" "^0.42.0" - "@glimmer/vm" "^0.42.0" - "@glimmer/wire-format" "^0.42.0" - -"@glimmer/program@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.42.0.tgz#9bfb157b75f1527815dc205c723392e68a0dae5e" - integrity sha512-UU+5jXuqgIYiC3TchM1bAU74a4GyS6bEPfzwLEoC1ZHRfy793S8B78FzAYSnZNeKeenHAnx3oeGohpnY2lCymA== - dependencies: - "@glimmer/encoder" "^0.42.0" - "@glimmer/interfaces" "^0.42.0" - "@glimmer/util" "^0.42.0" - -"@glimmer/reference@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.42.0.tgz#353397b1ca3e1a96adbcaa245b8e3f81a931b277" - integrity sha512-dBXzxTR7SjQTRa9lSZF2kEMEvjaOEic8KhvVty2I4VQFsyVVkI8qwN107c3QDNAicYc6JvARcZFjSaaAEGp/Og== - dependencies: - "@glimmer/util" "^0.42.0" +"@glimmer/interfaces@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.43.0.tgz#a7a38c2476f87d68d6dc894840df17bc8b92de33" + integrity sha512-rWu6WHVo6tuFFOKOSJWAWsFfXZgkdnKDnvhl3tAb20njW/0uBZ2nx7GZ3lImvBeG0HoxyzYA7pD299ps03TemA== + +"@glimmer/low-level@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/low-level/-/low-level-0.43.0.tgz#8c8b228488f80521c8cac8015002e64089242ba0" + integrity sha512-KzmS8fMNWbWsvsygK1lPIkgUROk30AQWERv6dRy8VJmkuNzwtBIdZgKqBJSrIIkv4MVgYaYU4Ni2hchQpKy5rA== + +"@glimmer/node@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.43.0.tgz#664fdd4ca81bc84b154ac83f4b785dcd4b47ae86" + integrity sha512-vJMk1XYX5Rjr1rRKR21nG93ECrCDdfj6vkyi94WCi5RXPNjDlflf/fiYDURNaIUnfHIhJpWRJtYlA6ZqSZ02sQ== + dependencies: + "@glimmer/interfaces" "^0.43.0" + "@glimmer/runtime" "^0.43.0" + +"@glimmer/opcode-compiler@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/opcode-compiler/-/opcode-compiler-0.43.0.tgz#ccfe01ca26a7ffdb82eb3908c3e558d0f7ff4ff4" + integrity sha512-wX4KnZ1KbNFutPmohP3IYR6KxLDwVPiBbMH/dJfBsyylRkps7sxBt7iiOQkj9hZaxsgY5VjH+4uDx/6r7hc6rQ== + dependencies: + "@glimmer/encoder" "^0.43.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/program" "^0.43.0" + "@glimmer/reference" "^0.43.0" + "@glimmer/util" "^0.43.0" + "@glimmer/vm" "^0.43.0" + "@glimmer/wire-format" "^0.43.0" + +"@glimmer/program@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/program/-/program-0.43.0.tgz#69ecbcfb11ef555af11b180dc6c9324d8f6b161a" + integrity sha512-7D64sMaEn9dzDeOZEwxmaP2aaYoB2w0JyxdSCwqzvK33vGr44vjYGttVU9SgQB55em+TyLapTXJRioCYCeMTrQ== + dependencies: + "@glimmer/encoder" "^0.43.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/util" "^0.43.0" + +"@glimmer/reference@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.43.0.tgz#fa8c427e55f5d1b8f9b6a5a2fc276f4ed20d06ca" + integrity sha512-ZxLC7WcrBVmYcUrMBjO5XWkrItgNxpQ+H2O5TUrXSYCNVNQyA9rmkQkW7MImqbbYMuwRR/TZ+PHaLpbEoGQgcQ== + dependencies: + "@glimmer/util" "^0.43.0" "@glimmer/resolution-map-builder@^0.4.0": version "0.4.0" @@ -1341,18 +1323,18 @@ dependencies: "@glimmer/di" "^0.2.0" -"@glimmer/runtime@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.42.0.tgz#656b3e6a1138864fd50c445e107e37ac0ca55db5" - integrity sha512-r4FSHjnMbv7JqGp1ayS33UXh1Vmd1j15U+H2H/1dqYBqgB2B78sD3idsv1FLbO+42WV7TVrosgpRALMflmun+Q== +"@glimmer/runtime@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.43.0.tgz#70eb7b3b091607535bad6694b533c0aeaf1623b4" + integrity sha512-3HjNLpzdQ19FCeXO7fIvS09gNUxdmcwrPnny6djo5OZmhaiHlyPy7eZ5p41Q1NWXfwONHd6S26ibRf8j4NPIcQ== dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/low-level" "^0.42.0" - "@glimmer/program" "^0.42.0" - "@glimmer/reference" "^0.42.0" - "@glimmer/util" "^0.42.0" - "@glimmer/vm" "^0.42.0" - "@glimmer/wire-format" "^0.42.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/low-level" "^0.43.0" + "@glimmer/program" "^0.43.0" + "@glimmer/reference" "^0.43.0" + "@glimmer/util" "^0.43.0" + "@glimmer/vm" "^0.43.0" + "@glimmer/wire-format" "^0.43.0" "@glimmer/syntax@^0.34.2": version "0.34.2" @@ -1364,13 +1346,13 @@ handlebars "^4.0.6" simple-html-tokenizer "^0.5.1" -"@glimmer/syntax@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.42.0.tgz#65d38f6f6339e0e00cfbb34bc08ed3ff94f080c6" - integrity sha512-H0vydEQjlSqlVyjUmQxOy9BMBdL8OAII4GQjTXHWOQKmQBreZ05Dpr2EbXusiby6E2lMgbcPOqxGXdB/VVUBew== +"@glimmer/syntax@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.43.0.tgz#d6e30c857c575eeac25b3f7ffab2cfee43685726" + integrity sha512-qJqzcbF9lgdLE5A1rCwTs0CLnblNK95Y6MMLNsvJEJA7j1Gx50ySoUZ5HTk86Z5auhDgvInhuufyGtdojSIMSg== dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/util" "^0.42.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/util" "^0.43.0" handlebars "^4.0.13" simple-html-tokenizer "^0.5.8" @@ -1379,18 +1361,18 @@ resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.34.2.tgz#16b8573bffc4177e229be764c166cbad3d9665cd" integrity sha512-F1DYOu+fB/jj10F1oBN9TM1HsXCDwF9/PEmflz9EvUMf7PxHMDOwNvlzDwSMyG5FBsGt6q9xRXOgDVJ6dYxX6w== -"@glimmer/util@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.42.0.tgz#3f3a647ecaa16bbe4fc0545923d3b0a527319d78" - integrity sha512-rvXxKVb7BoQUvdrEQgxyvIeqGRUFM4LZAc7X1OmIpMnoaEh3fyx/e8Bz0blF0Yk6QvHpfV/GKirhlGmfum/ISA== +"@glimmer/util@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.43.0.tgz#dd28cd1a233c25427032437b9050c6fa6d098e2c" + integrity sha512-RtjHU8/rhysOugu+Q0j6dQ3G67J4h45tQgKPEwVPxu8P+hqijqnz/lBLxTdVg/1zKmlqUkyngTr8H4Jpg2yF/g== -"@glimmer/vm@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.42.0.tgz#98964426497277f3d8e87b4608d2804d23fd2cc5" - integrity sha512-XBXwSTiVhHN9aLht1aBX4Xgr6l/IEJiARDAuS6r0zVcbERj4vj3KnNvFGMn9N1oNOC3BH3BYp/hAv4yKk0TEBQ== +"@glimmer/vm@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.43.0.tgz#700a8e696367ee693e217573000ef24baf40696a" + integrity sha512-BacPGR6nD/uBrvOzswO2ETUO9B3LbzCVuKwr5B1UXhIrkuZEPfKum45TNUmru20SzvmqJorojj/UAx6kTmgKFA== dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/util" "^0.42.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/util" "^0.43.0" "@glimmer/wire-format@^0.34.2": version "0.34.2" @@ -1399,13 +1381,13 @@ dependencies: "@glimmer/util" "^0.34.2" -"@glimmer/wire-format@^0.42.0": - version "0.42.0" - resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.42.0.tgz#53f9a6cbcb9882af3a55aed83929f71799f73fab" - integrity sha512-/SmRH98Jm4NyvyWoBj05fqyz52pGDGHq91uX5Fn7sT4xgHDe8smlT+5Ht3Ewl4t2Pmtwqx/4YzitOy/1EKv0aA== +"@glimmer/wire-format@^0.43.0": + version "0.43.0" + resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.43.0.tgz#3d48c3dd31b8175d8dfee27bcc2825ad256f1acb" + integrity sha512-a95mu3UQK1lCrG0QEHwXfJjIIwzul9UDxG5vp/eOZDUDgxcen/U/d6sIvYhp1fX+yKJ2bOf30BvRb3yVaJRPrw== dependencies: - "@glimmer/interfaces" "^0.42.0" - "@glimmer/util" "^0.42.0" + "@glimmer/interfaces" "^0.43.0" + "@glimmer/util" "^0.43.0" "@simple-dom/document@^1.4.0": version "1.4.0" @@ -3482,10 +3464,10 @@ broccoli-test-helper@^1.1.0, broccoli-test-helper@^1.2.0: rimraf "^2.5.4" walk-sync "^0.3.1" -broccoli-typescript-compiler@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/broccoli-typescript-compiler/-/broccoli-typescript-compiler-4.1.0.tgz#8511b73a7b019f6b6267679df64e211ca65ba036" - integrity sha512-pz+hQMlfwvklezPB1K4COYdf5SIQX6Dl4bdLX/R0uTNEJAwVa3Is/4YSXXm2L+LQdfMCZSXzqjbC5AGgvdbB6A== +broccoli-typescript-compiler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/broccoli-typescript-compiler/-/broccoli-typescript-compiler-4.2.0.tgz#b0c75898c75b897f40d3f627d548a64e0bb3d9f2" + integrity sha512-Fk17EapT3Yye5pUNC3lzxq78KdFTWGC7m8Zi8BnIfwD6ZPzVT+uEYMEcYXsfCtMD//jHSIXDQi9YlWZcHVjiDw== dependencies: broccoli-funnel "^2.0.1" broccoli-merge-trees "^3.0.0" @@ -3493,7 +3475,7 @@ broccoli-typescript-compiler@^4.1.0: fs-tree-diff "^0.5.7" heimdalljs "0.3.3" md5-hex "^2.0.0" - typescript "~3.2.1" + typescript "~3.5.3" walk-sync "^0.3.2" broccoli-uglify-sourcemap@^2.1.1: @@ -4506,6 +4488,15 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + cryptiles@3.x.x: version "3.1.2" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" @@ -5158,23 +5149,22 @@ ember-cli-test-loader@^2.2.0: dependencies: ember-cli-babel "^6.8.1" -ember-cli-typescript@^2.0.0-rc.1: - version "2.0.0-rc.2" - resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-2.0.0-rc.2.tgz#d8253097279ed292c20e739ee72f8fb994dbb6b7" - integrity sha512-u4mhdt/R0ip5s1H93aXtGJ/tnZ/3LsIOhKmaPylvlAVW/HtgPk+j/9sFHT4YmFUKMWPP2gXExtDkYNbz81XWzw== +ember-cli-typescript@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-3.0.0.tgz#3b838d1ce9e4d22a98e68da22ceac6dc0cfd9bfc" + integrity sha512-lo5YArbJzJi5ssvaGqTt6+FnhTALnSvYVuxM7lfyL1UCMudyNJ94ovH5C7n5il7ATd6WsNiAPRUO/v+s5Jq/aA== dependencies: - "@babel/plugin-proposal-class-properties" "^7.1.0" - "@babel/plugin-transform-typescript" "^7.1.0" + "@babel/plugin-transform-typescript" "~7.5.0" ansi-to-html "^0.6.6" debug "^4.0.0" ember-cli-babel-plugin-helpers "^1.0.0" - execa "^1.0.0" - fs-extra "^7.0.0" + execa "^2.0.0" + fs-extra "^8.0.0" resolve "^1.5.0" rsvp "^4.8.1" - semver "^5.5.1" + semver "^6.0.0" stagehand "^1.0.0" - walk-sync "^1.0.0" + walk-sync "^2.0.0" ember-cli-uglify@^2.1.0: version "2.1.0" @@ -6044,6 +6034,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + exists-stat@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/exists-stat/-/exists-stat-1.0.0.tgz#0660e3525a2e89d9e446129440c272edfa24b529" @@ -6607,6 +6612,15 @@ fs-extra@^7.0.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -6776,6 +6790,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -7014,6 +7035,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== +graceful-fs@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -7823,6 +7849,11 @@ is-stream@^1.0.0, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" @@ -8894,6 +8925,14 @@ matcher-collection@^1.0.4: dependencies: minimatch "^3.0.2" +matcher-collection@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-2.0.1.tgz#90be1a4cf58d6f2949864f65bb3b0f3e41303b29" + integrity sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ== + dependencies: + "@types/minimatch" "^3.0.3" + minimatch "^3.0.2" + math-random@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" @@ -8974,6 +9013,11 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge-trees@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-trees/-/merge-trees-1.0.1.tgz#ccbe674569787f9def17fd46e6525f5700bbd23e" @@ -9106,6 +9150,11 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -9524,6 +9573,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -9683,6 +9739,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + optimist@^0.6.0, optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -9774,6 +9837,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" @@ -9957,6 +10025,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" + integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== + path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -11110,7 +11183,7 @@ semver@^5.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -11199,11 +11272,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -11720,6 +11805,11 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -12226,25 +12316,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^2.9.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" - integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== - typescript@next: version "3.8.0-dev.20191105" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.0-dev.20191105.tgz#84936856168f081f8ffd67441c76f439c97fb9b7" integrity sha512-bKujrrC0aQRihwWPuavqvlCArHqwXqGmUTwzpyojkTiHBMbfuuVxqM5fYDYLALe6B1eRGm5bFeNtFF/d/8CpCQ== -typescript@~3.2.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d" - integrity sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg== - -typescript@~3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5" - integrity sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg== +typescript@~3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -12546,6 +12626,15 @@ walk-sync@^1.0.0: ensure-posix-path "^1.1.0" matcher-collection "^1.1.1" +walk-sync@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.0.2.tgz#5ea8a28377c8be68c92d50f4007ea381725da14b" + integrity sha512-dCZkrxfHjPn7tIvdYrX3uMD/R0beVrHpA8lROQ5wWrl8psJgR6xwCkwqTFes0dNujbS2o/ITpvSYgIFsLsf13A== + dependencies: + "@types/minimatch" "^3.0.3" + ensure-posix-path "^1.1.0" + matcher-collection "^2.0.0" + walkdir@^0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532" @@ -12640,6 +12729,13 @@ which@^1.2.14: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" + integrity sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" From 25eac669b3f2514e1bd42132393d74d291f04d0e Mon Sep 17 00:00:00 2001 From: Chris Garrett Date: Fri, 8 Nov 2019 15:54:08 -0800 Subject: [PATCH 3/3] add type test docs/README --- README.md | 47 ++++++++++++++++++++++++++++++++++++ test/types/component-test.ts | 4 ++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c76b66a4e..7deec3737 100644 --- a/README.md +++ b/README.md @@ -49,3 +49,50 @@ the user's browser. [`@glimmer/application-pipeline`]: https://github.com/glimmerjs/glimmer-application-pipeline [`@glimmer/resolution-map-builder`]: https://github.com/glimmerjs/resolution-map-builder + +## Tests + +### Type Tests + +The following packages are committed to maintaining stable Typescript types in +addition to their JavaScript API: + +* `@glimmer/component` + +Any changes to their types, _including_ changes caused by upgrading the +Typescript compiler, are covered under SemVer for these packages (e.g. breaking +changes to types will require a new major version). + +In order to ensure we aren't making changes to types unintentionally, we have a +set of tests for their public APIs in `/test/types`. These can be run with: + +```sh +yarn build +yarn test:types +``` + +In general, any new additions to the public types should be a new _minor version_, +and removals of public APIs or changes to the versions of TS that are supported +should be a _major version_. Corrections to existing types that are +_not breaking_ (e.g. strictly equal to or wider than the current type) can be +released in _patch versions_. + +To add a new API: + +1. Add it to any `hasExactKeys` statements that assert on the keys of a public + value/type +2. Add an `$ExpectType` test for the new API to ensure it has the correct type. + +To remove an API: + +1. Remove it from any `hasExactKeys` statements +2. Remove any `$ExpectType` tests related to it + +#### Symbols + +Symbols are often used for internal state that is only accessible within a +framework. We use a few symbols internally in these packages, and because of +this they appear in the public type signatures, and assertions. However, unless +the symbol itself is part of the public JS API of the package, these properties +are _inacessible_ to users, and thus they are not part of public API, and any +changes can be made and released in a patch release. diff --git a/test/types/component-test.ts b/test/types/component-test.ts index 71b09f081..81dddd919 100644 --- a/test/types/component-test.ts +++ b/test/types/component-test.ts @@ -40,7 +40,9 @@ hasExactKeys<{ isDestroyed: unknown, willDestroy: unknown, - // These are not public API, but technically part of the shape + // These are not public API, but technically exist as keys on the class, so + // we have to include them to type check correctly. These can be removed or + // changed without a major version bump. [DESTROYED]: unknown, [DESTROYING]: unknown, }>()(component);