ember-source 5.0.0 → 5.1.0-alpha.2
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.
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +19 -35
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +8 -31
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +798 -436
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/glimmer/index.js +44 -89
- package/dist/packages/@ember/-internals/metal/index.js +7 -66
- package/dist/packages/@ember/-internals/utility-types/index.js +1 -1
- package/dist/packages/@ember/array/proxy.js +0 -1
- package/dist/packages/@ember/component/template-only.js +15 -27
- package/dist/packages/@ember/debug/index.js +6 -30
- package/dist/packages/@ember/debug/lib/warn.js +1 -0
- package/dist/packages/@ember/helper/index.js +139 -3
- package/dist/packages/@ember/modifier/index.js +11 -3
- package/dist/packages/@ember/object/core.js +37 -0
- package/dist/packages/@ember/object/mixin.js +1 -1
- package/dist/packages/@ember/object/proxy.js +1 -0
- package/dist/packages/@ember/routing/lib/utils.js +0 -1
- package/dist/packages/@ember/routing/route.js +8 -0
- package/dist/packages/@ember/routing/router-service.js +0 -1
- package/dist/packages/@ember/runloop/-private/backburner.js +10 -0
- package/dist/packages/@ember/runloop/index.js +6 -2
- package/dist/packages/@ember/test/index.js +5 -3
- package/dist/packages/ember/index.js +229 -220
- package/dist/packages/ember/version.js +1 -1
- package/dist/packages/ember-testing/lib/test/waiters.js +4 -1
- package/docs/data.json +478 -327
- package/package.json +26 -23
- package/types/publish.mjs +147 -354
- package/types/stable/@ember/-internals/glimmer/index.d.ts +6 -1
- package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +256 -132
- package/types/stable/@ember/-internals/glimmer/lib/components/input.d.ts +5 -2
- package/types/stable/@ember/-internals/glimmer/lib/components/link-to.d.ts +5 -2
- package/types/stable/@ember/-internals/glimmer/lib/components/textarea.d.ts +8 -2
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +66 -56
- package/types/stable/@ember/-internals/glimmer/lib/templates/empty.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/templates/input.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/templates/link-to.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/templates/outlet.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/templates/root.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/templates/textarea.d.ts +5 -0
- package/types/stable/@ember/-internals/metal/lib/computed.d.ts +2 -1
- package/types/stable/@ember/-internals/metal/lib/computed_cache.d.ts +1 -0
- package/types/stable/@ember/-internals/metal/lib/get_properties.d.ts +4 -2
- package/types/stable/@ember/-internals/metal/lib/set_properties.d.ts +3 -5
- package/types/stable/@ember/-internals/utility-types/index.d.ts +5 -0
- package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +8 -1
- package/types/stable/@ember/-internals/views/lib/system/action_manager.d.ts +3 -4
- package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +4 -6
- package/types/stable/@ember/application/instance.d.ts +1 -1
- package/types/stable/@ember/array/index.d.ts +1 -1
- package/types/stable/@ember/array/proxy.d.ts +11 -13
- package/types/stable/@ember/component/helper.d.ts +6 -1
- package/types/stable/@ember/component/template-only.d.ts +36 -1
- package/types/stable/@ember/controller/index.d.ts +6 -5
- package/types/stable/@ember/debug/data-adapter.d.ts +10 -3
- package/types/stable/@ember/debug/index.d.ts +4 -1
- package/types/stable/@ember/debug/lib/warn.d.ts +6 -1
- package/types/stable/@ember/engine/index.d.ts +2 -1
- package/types/stable/@ember/engine/instance.d.ts +2 -1
- package/types/stable/@ember/helper/index.d.ts +141 -3
- package/types/stable/@ember/modifier/index.d.ts +11 -2
- package/types/stable/@ember/object/core.d.ts +14 -9
- package/types/stable/@ember/object/index.d.ts +3 -2
- package/types/stable/@ember/object/lib/computed/reduce_computed_macros.d.ts +1 -1
- package/types/stable/@ember/object/mixin.d.ts +2 -2
- package/types/stable/@ember/object/observable.d.ts +21 -1
- package/types/stable/@ember/object/proxy.d.ts +26 -2
- package/types/stable/@ember/routing/hash-location.d.ts +0 -6
- package/types/stable/@ember/routing/history-location.d.ts +0 -6
- package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -7
- package/types/stable/@ember/routing/lib/router_state.d.ts +10 -6
- package/types/stable/@ember/routing/lib/routing-service.d.ts +3 -3
- package/types/stable/@ember/routing/lib/utils.d.ts +14 -15
- package/types/stable/@ember/routing/location-ext.d.ts +18 -0
- package/types/stable/@ember/routing/location.d.ts +0 -6
- package/types/stable/@ember/routing/none-location.d.ts +0 -6
- package/types/stable/@ember/routing/owner-ext.d.ts +11 -0
- package/types/stable/@ember/routing/route.d.ts +39 -24
- package/types/stable/@ember/routing/router-service.d.ts +18 -15
- package/types/stable/@ember/routing/router.d.ts +42 -44
- package/types/stable/@ember/routing/service-ext.d.ts +14 -0
- package/types/stable/@ember/runloop/-private/backburner.d.ts +7 -0
- package/types/stable/@ember/runloop/index.d.ts +12 -4
- package/types/stable/@ember/service/index.d.ts +20 -7
- package/types/stable/@ember/service/owner-ext.d.ts +11 -0
- package/types/stable/@ember/template-compilation/index.d.ts +16 -1
- package/types/stable/@ember/test/index.d.ts +6 -6
- package/types/stable/@ember/utils/lib/compare.d.ts +1 -1
- package/types/stable/ember/index.d.ts +320 -246
- package/types/stable/ember/version.d.ts +4 -0
- package/types/stable/ember-template-compiler/index.d.ts +1 -8
- package/types/stable/ember-template-compiler/lib/types.d.ts +20 -0
- package/types/stable/ember-testing/lib/adapters/adapter.d.ts +37 -1
- package/types/stable/ember-testing/lib/adapters/qunit.d.ts +18 -3
- package/types/stable/ember-testing/lib/test/helpers.d.ts +5 -1
- package/types/stable/ember-testing/lib/test/promise.d.ts +1 -1
- package/types/stable/index.d.ts +298 -4
- package/types/stable/loader/lib/index.d.ts +4 -0
- package/types/stable/require.d.ts +4 -0
- package/types/preview/@ember/application/-private/event-dispatcher.d.ts +0 -18
- package/types/preview/@ember/application/-private/registry.d.ts +0 -15
- package/types/preview/@ember/application/index.d.ts +0 -136
- package/types/preview/@ember/application/instance.d.ts +0 -9
- package/types/preview/@ember/application/types.d.ts +0 -29
- package/types/preview/@ember/array/-private/enumerable.d.ts +0 -13
- package/types/preview/@ember/array/-private/mutable-enumerable.d.ts +0 -13
- package/types/preview/@ember/array/-private/native-array.d.ts +0 -181
- package/types/preview/@ember/array/index.d.ts +0 -251
- package/types/preview/@ember/array/mutable.d.ts +0 -94
- package/types/preview/@ember/array/proxy.d.ts +0 -29
- package/types/preview/@ember/component/-private/class-names-support.d.ts +0 -27
- package/types/preview/@ember/component/-private/core-view.d.ts +0 -14
- package/types/preview/@ember/component/-private/glimmer-interfaces.d.ts +0 -49
- package/types/preview/@ember/component/-private/signature-utils.d.ts +0 -107
- package/types/preview/@ember/component/-private/view-mixin.d.ts +0 -59
- package/types/preview/@ember/component/helper.d.ts +0 -122
- package/types/preview/@ember/component/index.d.ts +0 -164
- package/types/preview/@ember/component/template-only.d.ts +0 -47
- package/types/preview/@ember/controller/index.d.ts +0 -47
- package/types/preview/@ember/debug/container-debug-adapter.d.ts +0 -14
- package/types/preview/@ember/debug/data-adapter.d.ts +0 -64
- package/types/preview/@ember/debug/index.d.ts +0 -98
- package/types/preview/@ember/destroyable/index.d.ts +0 -23
- package/types/preview/@ember/engine/-private/container-proxy-mixin.d.ts +0 -11
- package/types/preview/@ember/engine/-private/registry-proxy-mixin.d.ts +0 -12
- package/types/preview/@ember/engine/-private/types/initializer.d.ts +0 -8
- package/types/preview/@ember/engine/index.d.ts +0 -45
- package/types/preview/@ember/engine/instance.d.ts +0 -25
- package/types/preview/@ember/helper/index.d.ts +0 -49
- package/types/preview/@ember/modifier/index.d.ts +0 -33
- package/types/preview/@ember/object/-private/action-handler.d.ts +0 -31
- package/types/preview/@ember/object/-private/types.d.ts +0 -63
- package/types/preview/@ember/object/compat.d.ts +0 -9
- package/types/preview/@ember/object/computed.d.ts +0 -263
- package/types/preview/@ember/object/core.d.ts +0 -89
- package/types/preview/@ember/object/evented.d.ts +0 -45
- package/types/preview/@ember/object/events.d.ts +0 -47
- package/types/preview/@ember/object/index.d.ts +0 -126
- package/types/preview/@ember/object/internals.d.ts +0 -17
- package/types/preview/@ember/object/mixin.d.ts +0 -19
- package/types/preview/@ember/object/observable.d.ts +0 -89
- package/types/preview/@ember/object/observers.d.ts +0 -34
- package/types/preview/@ember/object/promise-proxy-mixin.d.ts +0 -37
- package/types/preview/@ember/object/proxy.d.ts +0 -27
- package/types/preview/@ember/routing/-private/router-dsl.d.ts +0 -20
- package/types/preview/@ember/routing/hash-location.d.ts +0 -26
- package/types/preview/@ember/routing/history-location.d.ts +0 -25
- package/types/preview/@ember/routing/index.d.ts +0 -17
- package/types/preview/@ember/routing/location.d.ts +0 -104
- package/types/preview/@ember/routing/none-location.d.ts +0 -27
- package/types/preview/@ember/routing/route-info.d.ts +0 -73
- package/types/preview/@ember/routing/route.d.ts +0 -532
- package/types/preview/@ember/routing/router-service.d.ts +0 -359
- package/types/preview/@ember/routing/router.d.ts +0 -41
- package/types/preview/@ember/routing/transition.d.ts +0 -126
- package/types/preview/@ember/routing/types.d.ts +0 -15
- package/types/preview/@ember/runloop/-private/backburner.d.ts +0 -43
- package/types/preview/@ember/runloop/-private/types.d.ts +0 -9
- package/types/preview/@ember/runloop/index.d.ts +0 -175
- package/types/preview/@ember/runloop/types.d.ts +0 -5
- package/types/preview/@ember/service/index.d.ts +0 -32
- package/types/preview/@ember/template/-private/handlebars.d.ts +0 -7
- package/types/preview/@ember/template/index.d.ts +0 -6
- package/types/preview/@ember/template-compilation/index.d.ts +0 -28
- package/types/preview/@ember/test/adapter.d.ts +0 -22
- package/types/preview/@ember/test/index.d.ts +0 -49
- package/types/preview/@ember/utils/-private/types.d.ts +0 -39
- package/types/preview/@ember/utils/index.d.ts +0 -42
- package/types/preview/ember/-private/type-utils.d.ts +0 -57
- package/types/preview/ember/index.d.ts +0 -347
- package/types/preview/index.d.ts +0 -121
- /package/dist/dependencies/{backburner.js → backburner.js.js} +0 -0
package/types/publish.mjs
CHANGED
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
eventually be the list of *all* modules, but this allows us to publish
|
|
22
22
|
iteratively as we gain confidence in the stability of the types.
|
|
23
23
|
|
|
24
|
-
This is *not* an optimal long-term publishing strategy.
|
|
24
|
+
This is *not* an optimal long-term publishing strategy. (To the contrary: it
|
|
25
|
+
is an underspecified and _ad hoc_ implementation of a module resolver, and is
|
|
26
|
+
likely to fall over if you so much as breathe on it.) We would prefer to
|
|
25
27
|
generate per-package roll-ups, using a Rollup plugin or some such, but we are
|
|
26
28
|
currently blocked on a number of internal circular dependencies as well as the
|
|
27
29
|
difficulty of avoiding multiple definitions of the same types reused across
|
|
@@ -32,321 +34,18 @@
|
|
|
32
34
|
|
|
33
35
|
import glob from 'glob';
|
|
34
36
|
import { spawnSync } from 'node:child_process';
|
|
35
|
-
import fs from 'node:fs';
|
|
37
|
+
import fs from 'node:fs/promises';
|
|
36
38
|
import path from 'node:path';
|
|
37
39
|
import * as parser from 'recast/parsers/babel-ts.js';
|
|
38
40
|
import {
|
|
39
41
|
isClassDeclaration,
|
|
40
42
|
isStringLiteral,
|
|
41
43
|
isVariableDeclaration,
|
|
42
|
-
isTSDeclareFunction,
|
|
43
44
|
isTSEnumDeclaration,
|
|
44
45
|
} from '@babel/types';
|
|
45
46
|
import { builders as b, visit } from 'ast-types';
|
|
46
47
|
import { parse, print } from 'recast';
|
|
47
48
|
|
|
48
|
-
/**
|
|
49
|
-
Modules we know we are not ready to expose yet, mostly because they do not
|
|
50
|
-
have enough annotations on their internals to make the generated types clear
|
|
51
|
-
about what is public and what is private.
|
|
52
|
-
|
|
53
|
-
Notably, the modules will still be published, but they won't be visible to
|
|
54
|
-
consumers because the only way they *become* visible is by being included in
|
|
55
|
-
the set of type-only side effect imports, which excludes exactly these
|
|
56
|
-
modules.
|
|
57
|
-
*/
|
|
58
|
-
const PREVIEW_MODULES = [
|
|
59
|
-
'@ember/-internals/bootstrap/index.d.ts',
|
|
60
|
-
'@ember/-internals/browser-environment/index.d.ts',
|
|
61
|
-
'@ember/-internals/browser-environment/lib/has-dom.d.ts',
|
|
62
|
-
'@ember/-internals/container/index.d.ts',
|
|
63
|
-
'@ember/-internals/container/lib/container.d.ts',
|
|
64
|
-
'@ember/-internals/container/lib/registry.d.ts',
|
|
65
|
-
'@ember/-internals/environment/index.d.ts',
|
|
66
|
-
'@ember/-internals/environment/lib/context.d.ts',
|
|
67
|
-
'@ember/-internals/environment/lib/env.d.ts',
|
|
68
|
-
'@ember/-internals/environment/lib/global.d.ts',
|
|
69
|
-
'@ember/-internals/error-handling/index.d.ts',
|
|
70
|
-
'@ember/-internals/glimmer/index.d.ts',
|
|
71
|
-
'@ember/-internals/glimmer/lib/component-managers/curly.d.ts',
|
|
72
|
-
'@ember/-internals/glimmer/lib/component-managers/mount.d.ts',
|
|
73
|
-
'@ember/-internals/glimmer/lib/component-managers/outlet.d.ts',
|
|
74
|
-
'@ember/-internals/glimmer/lib/component-managers/root.d.ts',
|
|
75
|
-
'@ember/-internals/glimmer/lib/component.d.ts',
|
|
76
|
-
'@ember/-internals/glimmer/lib/components/abstract-input.d.ts',
|
|
77
|
-
'@ember/-internals/glimmer/lib/components/input.d.ts',
|
|
78
|
-
'@ember/-internals/glimmer/lib/components/internal.d.ts',
|
|
79
|
-
'@ember/-internals/glimmer/lib/components/link-to.d.ts',
|
|
80
|
-
'@ember/-internals/glimmer/lib/components/textarea.d.ts',
|
|
81
|
-
'@ember/-internals/glimmer/lib/dom.d.ts',
|
|
82
|
-
'@ember/-internals/glimmer/lib/environment.d.ts',
|
|
83
|
-
'@ember/-internals/glimmer/lib/glimmer-component-docs.d.ts',
|
|
84
|
-
'@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts',
|
|
85
|
-
'@ember/-internals/glimmer/lib/helper.d.ts',
|
|
86
|
-
'@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.d.ts',
|
|
87
|
-
'@ember/-internals/glimmer/lib/helpers/-in-element-null-check.d.ts',
|
|
88
|
-
'@ember/-internals/glimmer/lib/helpers/-normalize-class.d.ts',
|
|
89
|
-
'@ember/-internals/glimmer/lib/helpers/-resolve.d.ts',
|
|
90
|
-
'@ember/-internals/glimmer/lib/helpers/-track-array.d.ts',
|
|
91
|
-
'@ember/-internals/glimmer/lib/helpers/action.d.ts',
|
|
92
|
-
'@ember/-internals/glimmer/lib/helpers/array.d.ts',
|
|
93
|
-
'@ember/-internals/glimmer/lib/helpers/component.d.ts',
|
|
94
|
-
'@ember/-internals/glimmer/lib/helpers/concat.d.ts',
|
|
95
|
-
'@ember/-internals/glimmer/lib/helpers/each-in.d.ts',
|
|
96
|
-
'@ember/-internals/glimmer/lib/helpers/fn.d.ts',
|
|
97
|
-
'@ember/-internals/glimmer/lib/helpers/get.d.ts',
|
|
98
|
-
'@ember/-internals/glimmer/lib/helpers/hash.d.ts',
|
|
99
|
-
'@ember/-internals/glimmer/lib/helpers/helper.d.ts',
|
|
100
|
-
'@ember/-internals/glimmer/lib/helpers/if-unless.d.ts',
|
|
101
|
-
'@ember/-internals/glimmer/lib/helpers/internal-helper.d.ts',
|
|
102
|
-
'@ember/-internals/glimmer/lib/helpers/log.d.ts',
|
|
103
|
-
'@ember/-internals/glimmer/lib/helpers/modifier.d.ts',
|
|
104
|
-
'@ember/-internals/glimmer/lib/helpers/mut.d.ts',
|
|
105
|
-
'@ember/-internals/glimmer/lib/helpers/page-title.d.ts',
|
|
106
|
-
'@ember/-internals/glimmer/lib/helpers/readonly.d.ts',
|
|
107
|
-
'@ember/-internals/glimmer/lib/helpers/unbound.d.ts',
|
|
108
|
-
'@ember/-internals/glimmer/lib/helpers/unique-id.d.ts',
|
|
109
|
-
'@ember/-internals/glimmer/lib/modifiers/action.d.ts',
|
|
110
|
-
'@ember/-internals/glimmer/lib/modifiers/internal.d.ts',
|
|
111
|
-
'@ember/-internals/glimmer/lib/modifiers/on.d.ts',
|
|
112
|
-
'@ember/-internals/glimmer/lib/renderer.d.ts',
|
|
113
|
-
'@ember/-internals/glimmer/lib/resolver.d.ts',
|
|
114
|
-
'@ember/-internals/glimmer/lib/setup-registry.d.ts',
|
|
115
|
-
'@ember/-internals/glimmer/lib/syntax/in-element.d.ts',
|
|
116
|
-
'@ember/-internals/glimmer/lib/syntax/let.d.ts',
|
|
117
|
-
'@ember/-internals/glimmer/lib/syntax/mount.d.ts',
|
|
118
|
-
'@ember/-internals/glimmer/lib/syntax/outlet.d.ts',
|
|
119
|
-
'@ember/-internals/glimmer/lib/syntax/utils.d.ts',
|
|
120
|
-
'@ember/-internals/glimmer/lib/template_registry.d.ts',
|
|
121
|
-
'@ember/-internals/glimmer/lib/template.d.ts',
|
|
122
|
-
'@ember/-internals/glimmer/lib/utils/bindings.d.ts',
|
|
123
|
-
'@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts',
|
|
124
|
-
'@ember/-internals/glimmer/lib/utils/debug-render-message.d.ts',
|
|
125
|
-
'@ember/-internals/glimmer/lib/utils/iterator.d.ts',
|
|
126
|
-
'@ember/-internals/glimmer/lib/utils/managers.d.ts',
|
|
127
|
-
'@ember/-internals/glimmer/lib/utils/outlet.d.ts',
|
|
128
|
-
'@ember/-internals/glimmer/lib/utils/process-args.d.ts',
|
|
129
|
-
'@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts',
|
|
130
|
-
'@ember/-internals/glimmer/lib/utils/string.d.ts',
|
|
131
|
-
'@ember/-internals/glimmer/lib/utils/to-bool.d.ts',
|
|
132
|
-
'@ember/-internals/glimmer/lib/views/outlet.d.ts',
|
|
133
|
-
'@ember/-internals/meta/index.d.ts',
|
|
134
|
-
'@ember/-internals/meta/lib/meta.d.ts',
|
|
135
|
-
'@ember/-internals/metal/index.d.ts',
|
|
136
|
-
'@ember/-internals/metal/lib/alias.d.ts',
|
|
137
|
-
'@ember/-internals/metal/lib/array_events.d.ts',
|
|
138
|
-
'@ember/-internals/metal/lib/array.d.ts',
|
|
139
|
-
'@ember/-internals/metal/lib/cache.d.ts',
|
|
140
|
-
'@ember/-internals/metal/lib/cached.d.ts',
|
|
141
|
-
'@ember/-internals/metal/lib/chain-tags.d.ts',
|
|
142
|
-
'@ember/-internals/metal/lib/change_event.d.ts',
|
|
143
|
-
'@ember/-internals/metal/lib/computed_cache.d.ts',
|
|
144
|
-
'@ember/-internals/metal/lib/computed.d.ts',
|
|
145
|
-
'@ember/-internals/metal/lib/decorator.d.ts',
|
|
146
|
-
'@ember/-internals/metal/lib/dependent_keys.d.ts',
|
|
147
|
-
'@ember/-internals/metal/lib/deprecate_property.d.ts',
|
|
148
|
-
'@ember/-internals/metal/lib/each_proxy_events.d.ts',
|
|
149
|
-
'@ember/-internals/metal/lib/events.d.ts',
|
|
150
|
-
'@ember/-internals/metal/lib/expand_properties.d.ts',
|
|
151
|
-
'@ember/-internals/metal/lib/get_properties.d.ts',
|
|
152
|
-
'@ember/-internals/metal/lib/injected_property.d.ts',
|
|
153
|
-
'@ember/-internals/metal/lib/libraries.d.ts',
|
|
154
|
-
'@ember/-internals/metal/lib/namespace_search.d.ts',
|
|
155
|
-
'@ember/-internals/metal/lib/observer.d.ts',
|
|
156
|
-
'@ember/-internals/metal/lib/path_cache.d.ts',
|
|
157
|
-
'@ember/-internals/metal/lib/properties.d.ts',
|
|
158
|
-
'@ember/-internals/metal/lib/property_events.d.ts',
|
|
159
|
-
'@ember/-internals/metal/lib/property_get.d.ts',
|
|
160
|
-
'@ember/-internals/metal/lib/property_set.d.ts',
|
|
161
|
-
'@ember/-internals/metal/lib/set_properties.d.ts',
|
|
162
|
-
'@ember/-internals/metal/lib/tags.d.ts',
|
|
163
|
-
'@ember/-internals/metal/lib/tracked.d.ts',
|
|
164
|
-
'@ember/-internals/overrides/index.d.ts',
|
|
165
|
-
'@ember/-internals/routing/index.d.ts',
|
|
166
|
-
'@ember/-internals/runtime/index.d.ts',
|
|
167
|
-
'@ember/-internals/runtime/lib/ext/rsvp.d.ts',
|
|
168
|
-
'@ember/-internals/runtime/lib/mixins/-proxy.d.ts',
|
|
169
|
-
'@ember/-internals/runtime/lib/mixins/action_handler.d.ts',
|
|
170
|
-
'@ember/-internals/runtime/lib/mixins/comparable.d.ts',
|
|
171
|
-
'@ember/-internals/runtime/lib/mixins/container_proxy.d.ts',
|
|
172
|
-
'@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts',
|
|
173
|
-
'@ember/-internals/runtime/lib/mixins/target_action_support.d.ts',
|
|
174
|
-
'@ember/-internals/utils/index.d.ts',
|
|
175
|
-
'@ember/-internals/utils/lib/cache.d.ts',
|
|
176
|
-
'@ember/-internals/utils/lib/dictionary.d.ts',
|
|
177
|
-
'@ember/-internals/utils/lib/get-debug-name.d.ts',
|
|
178
|
-
'@ember/-internals/utils/lib/guid.d.ts',
|
|
179
|
-
'@ember/-internals/utils/lib/intern.d.ts',
|
|
180
|
-
'@ember/-internals/utils/lib/invoke.d.ts',
|
|
181
|
-
'@ember/-internals/utils/lib/is_proxy.d.ts',
|
|
182
|
-
'@ember/-internals/utils/lib/lookup-descriptor.d.ts',
|
|
183
|
-
'@ember/-internals/utils/lib/mandatory-setter.d.ts',
|
|
184
|
-
'@ember/-internals/utils/lib/name.d.ts',
|
|
185
|
-
'@ember/-internals/utils/lib/spec.d.ts',
|
|
186
|
-
'@ember/-internals/utils/lib/super.d.ts',
|
|
187
|
-
'@ember/-internals/utils/lib/symbol.d.ts',
|
|
188
|
-
'@ember/-internals/utils/lib/to-string.d.ts',
|
|
189
|
-
'@ember/-internals/utility-types.d.ts',
|
|
190
|
-
'@ember/-internals/views/index.d.ts',
|
|
191
|
-
'@ember/-internals/views/lib/compat/attrs.d.ts',
|
|
192
|
-
'@ember/-internals/views/lib/compat/fallback-view-registry.d.ts',
|
|
193
|
-
'@ember/-internals/views/lib/component_lookup.d.ts',
|
|
194
|
-
'@ember/-internals/views/lib/mixins/action_support.d.ts',
|
|
195
|
-
'@ember/-internals/views/lib/mixins/child_views_support.d.ts',
|
|
196
|
-
'@ember/-internals/views/lib/mixins/class_names_support.d.ts',
|
|
197
|
-
'@ember/-internals/views/lib/mixins/view_state_support.d.ts',
|
|
198
|
-
'@ember/-internals/views/lib/mixins/view_support.d.ts',
|
|
199
|
-
'@ember/-internals/views/lib/system/action_manager.d.ts',
|
|
200
|
-
'@ember/-internals/views/lib/system/event_dispatcher.d.ts',
|
|
201
|
-
'@ember/-internals/views/lib/system/utils.d.ts',
|
|
202
|
-
'@ember/-internals/views/lib/views/core_view.d.ts',
|
|
203
|
-
'@ember/-internals/views/lib/views/states.d.ts',
|
|
204
|
-
'@ember/-internals/views/lib/views/states/default.d.ts',
|
|
205
|
-
'@ember/-internals/views/lib/views/states/destroying.d.ts',
|
|
206
|
-
'@ember/-internals/views/lib/views/states/has_element.d.ts',
|
|
207
|
-
'@ember/-internals/views/lib/views/states/in_dom.d.ts',
|
|
208
|
-
'@ember/-internals/views/lib/views/states/pre_render.d.ts',
|
|
209
|
-
'@ember/application/index.d.ts',
|
|
210
|
-
'@ember/application/instance.d.ts',
|
|
211
|
-
'@ember/application/lib/lazy_load.d.ts',
|
|
212
|
-
'@ember/application/namespace.d.ts',
|
|
213
|
-
'@ember/array/index.d.ts',
|
|
214
|
-
'@ember/array/mutable.d.ts',
|
|
215
|
-
'@ember/array/proxy.d.ts',
|
|
216
|
-
'@ember/array/-internals.d.ts',
|
|
217
|
-
'@ember/array/lib/make-array.d.ts',
|
|
218
|
-
'@ember/canary-features/index.d.ts',
|
|
219
|
-
'@ember/component/helper.d.ts',
|
|
220
|
-
'@ember/component/index.d.ts',
|
|
221
|
-
'@ember/component/template-only.d.ts',
|
|
222
|
-
'@ember/controller/index.d.ts',
|
|
223
|
-
'@ember/debug/container-debug-adapter.d.ts',
|
|
224
|
-
'@ember/debug/data-adapter.d.ts',
|
|
225
|
-
'@ember/debug/index.d.ts',
|
|
226
|
-
'@ember/debug/lib/capture-render-tree.d.ts',
|
|
227
|
-
'@ember/debug/lib/deprecate.d.ts',
|
|
228
|
-
'@ember/debug/lib/handlers.d.ts',
|
|
229
|
-
'@ember/debug/lib/inspect.d.ts',
|
|
230
|
-
'@ember/debug/lib/testing.d.ts',
|
|
231
|
-
'@ember/debug/lib/warn.d.ts',
|
|
232
|
-
'@ember/deprecated-features/index.d.ts',
|
|
233
|
-
'@ember/destroyable/index.d.ts',
|
|
234
|
-
'@ember/engine/index.d.ts',
|
|
235
|
-
'@ember/engine/instance.d.ts',
|
|
236
|
-
'@ember/engine/lib/engine-parent.d.ts',
|
|
237
|
-
'@ember/enumerable/index.d.ts',
|
|
238
|
-
'@ember/enumerable/mutable.d.ts',
|
|
239
|
-
'@ember/helper/index.d.ts',
|
|
240
|
-
'@ember/instrumentation/index.d.ts',
|
|
241
|
-
'@ember/modifier/index.d.ts',
|
|
242
|
-
'@ember/object/-internals.d.ts',
|
|
243
|
-
'@ember/object/compat.d.ts',
|
|
244
|
-
'@ember/object/computed.d.ts',
|
|
245
|
-
'@ember/object/core.d.ts',
|
|
246
|
-
'@ember/object/evented.d.ts',
|
|
247
|
-
'@ember/object/events.d.ts',
|
|
248
|
-
'@ember/object/index.d.ts',
|
|
249
|
-
'@ember/object/internals.d.ts',
|
|
250
|
-
'@ember/object/lib/computed/computed_macros.d.ts',
|
|
251
|
-
'@ember/object/lib/computed/reduce_computed_macros.d.ts',
|
|
252
|
-
'@ember/object/mixin.d.ts',
|
|
253
|
-
'@ember/object/observable.d.ts',
|
|
254
|
-
'@ember/object/observers.d.ts',
|
|
255
|
-
'@ember/object/promise-proxy-mixin.d.ts',
|
|
256
|
-
'@ember/object/proxy.d.ts',
|
|
257
|
-
'@ember/renderer/index.d.ts',
|
|
258
|
-
'@ember/routing/-internals.d.ts',
|
|
259
|
-
'@ember/routing/auto-location.d.ts',
|
|
260
|
-
'@ember/routing/hash-location.d.ts',
|
|
261
|
-
'@ember/routing/history-location.d.ts',
|
|
262
|
-
'@ember/routing/index.d.ts',
|
|
263
|
-
'@ember/routing/lib/cache.d.ts',
|
|
264
|
-
'@ember/routing/lib/controller_for.d.ts',
|
|
265
|
-
'@ember/routing/lib/dsl.d.ts',
|
|
266
|
-
'@ember/routing/lib/engines.d.ts',
|
|
267
|
-
'@ember/routing/lib/generate_controller.d.ts',
|
|
268
|
-
'@ember/routing/lib/location-utils.d.ts',
|
|
269
|
-
'@ember/routing/lib/query_params.d.ts',
|
|
270
|
-
'@ember/routing/lib/route-info.d.ts',
|
|
271
|
-
'@ember/routing/lib/router_state.d.ts',
|
|
272
|
-
'@ember/routing/lib/routing-service.d.ts',
|
|
273
|
-
'@ember/routing/lib/transition.d.ts',
|
|
274
|
-
'@ember/routing/lib/utils.d.ts',
|
|
275
|
-
'@ember/routing/location.d.ts',
|
|
276
|
-
'@ember/routing/none-location.d.ts',
|
|
277
|
-
'@ember/routing/route-info.d.ts',
|
|
278
|
-
'@ember/routing/route.d.ts',
|
|
279
|
-
'@ember/routing/router-service.d.ts',
|
|
280
|
-
'@ember/routing/router.d.ts',
|
|
281
|
-
'@ember/routing/transition.d.ts',
|
|
282
|
-
'@ember/runloop/index.d.ts',
|
|
283
|
-
'@ember/service/index.d.ts',
|
|
284
|
-
'@ember/string/index.d.ts',
|
|
285
|
-
'@ember/string/lib/string_registry.d.ts',
|
|
286
|
-
'@ember/template-compilation/index.d.ts',
|
|
287
|
-
'@ember/template-factory/index.d.ts',
|
|
288
|
-
'@ember/template/index.d.ts',
|
|
289
|
-
'@ember/test/adapter.d.ts',
|
|
290
|
-
'@ember/test/index.d.ts',
|
|
291
|
-
'@ember/utils/index.d.ts',
|
|
292
|
-
'@ember/utils/lib/compare.d.ts',
|
|
293
|
-
'@ember/utils/lib/is_blank.d.ts',
|
|
294
|
-
'@ember/utils/lib/is_empty.d.ts',
|
|
295
|
-
'@ember/utils/lib/is_none.d.ts',
|
|
296
|
-
'@ember/utils/lib/is_present.d.ts',
|
|
297
|
-
'@ember/utils/lib/is-equal.d.ts',
|
|
298
|
-
'@ember/utils/lib/type-of.d.ts',
|
|
299
|
-
'@ember/version/index.d.ts',
|
|
300
|
-
'@glimmer/tracking/index.d.ts',
|
|
301
|
-
'@glimmer/tracking/primitives/cache.d.ts',
|
|
302
|
-
'ember-template-compiler/index.d.ts',
|
|
303
|
-
'ember-template-compiler/lib/plugins/assert-against-attrs.d.ts',
|
|
304
|
-
'ember-template-compiler/lib/plugins/assert-against-named-outlets.d.ts',
|
|
305
|
-
'ember-template-compiler/lib/plugins/assert-input-helper-without-block.d.ts',
|
|
306
|
-
'ember-template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts',
|
|
307
|
-
'ember-template-compiler/lib/plugins/assert-splattribute-expression.d.ts',
|
|
308
|
-
'ember-template-compiler/lib/plugins/index.d.ts',
|
|
309
|
-
'ember-template-compiler/lib/plugins/transform-action-syntax.d.ts',
|
|
310
|
-
'ember-template-compiler/lib/plugins/transform-each-in-into-each.d.ts',
|
|
311
|
-
'ember-template-compiler/lib/plugins/transform-each-track-array.d.ts',
|
|
312
|
-
'ember-template-compiler/lib/plugins/transform-in-element.d.ts',
|
|
313
|
-
'ember-template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts',
|
|
314
|
-
'ember-template-compiler/lib/plugins/transform-resolutions.d.ts',
|
|
315
|
-
'ember-template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts',
|
|
316
|
-
'ember-template-compiler/lib/plugins/utils.d.ts',
|
|
317
|
-
'ember-template-compiler/lib/system/bootstrap.d.ts',
|
|
318
|
-
'ember-template-compiler/lib/system/calculate-location-display.d.ts',
|
|
319
|
-
'ember-template-compiler/lib/system/compile-options.d.ts',
|
|
320
|
-
'ember-template-compiler/lib/system/compile.d.ts',
|
|
321
|
-
'ember-template-compiler/lib/system/dasherize-component-name.d.ts',
|
|
322
|
-
'ember-template-compiler/lib/system/initializer.d.ts',
|
|
323
|
-
'ember-template-compiler/lib/system/precompile.d.ts',
|
|
324
|
-
'ember-testing/index.d.ts',
|
|
325
|
-
'ember-testing/lib/adapters/adapter.d.ts',
|
|
326
|
-
'ember-testing/lib/adapters/qunit.d.ts',
|
|
327
|
-
'ember-testing/lib/ext/application.d.ts',
|
|
328
|
-
'ember-testing/lib/ext/rsvp.d.ts',
|
|
329
|
-
'ember-testing/lib/helpers.d.ts',
|
|
330
|
-
'ember-testing/lib/helpers/and_then.d.ts',
|
|
331
|
-
'ember-testing/lib/helpers/current_path.d.ts',
|
|
332
|
-
'ember-testing/lib/helpers/current_route_name.d.ts',
|
|
333
|
-
'ember-testing/lib/helpers/current_url.d.ts',
|
|
334
|
-
'ember-testing/lib/helpers/pause_test.d.ts',
|
|
335
|
-
'ember-testing/lib/helpers/visit.d.ts',
|
|
336
|
-
'ember-testing/lib/helpers/wait.d.ts',
|
|
337
|
-
'ember-testing/lib/initializers.d.ts',
|
|
338
|
-
'ember-testing/lib/setup_for_testing.d.ts',
|
|
339
|
-
'ember-testing/lib/test.d.ts',
|
|
340
|
-
'ember-testing/lib/test/adapter.d.ts',
|
|
341
|
-
'ember-testing/lib/test/helpers.d.ts',
|
|
342
|
-
'ember-testing/lib/test/on_inject_helpers.d.ts',
|
|
343
|
-
'ember-testing/lib/test/pending_requests.d.ts',
|
|
344
|
-
'ember-testing/lib/test/promise.d.ts',
|
|
345
|
-
'ember-testing/lib/test/run.d.ts',
|
|
346
|
-
'ember-testing/lib/test/waiters.d.ts',
|
|
347
|
-
'ember/index.d.ts',
|
|
348
|
-
];
|
|
349
|
-
|
|
350
49
|
const MODULES_PLACEHOLDER = '~~~MODULES GO HERE~~~';
|
|
351
50
|
|
|
352
51
|
const BASE_INDEX_D_TS = `\
|
|
@@ -399,53 +98,59 @@ ${MODULES_PLACEHOLDER}
|
|
|
399
98
|
|
|
400
99
|
const TYPES_DIR = path.join('types', 'stable');
|
|
401
100
|
|
|
101
|
+
// These modules need to be copied over *and* post-processed: they need to be
|
|
102
|
+
// locally-importable as regular modules, but `tsc` will not move them over
|
|
103
|
+
// itself, but unlike some modules which need to be left unchanged (e.g. the
|
|
104
|
+
// `*-ext.d.ts` modules) these still need the module wrapper added.
|
|
105
|
+
const HAND_COPIED_BUT_NEEDS_POSTPROCESSING = [
|
|
106
|
+
'ember/version.d.ts',
|
|
107
|
+
'@ember/-internals/glimmer/lib/templates/empty.d.ts',
|
|
108
|
+
'@ember/-internals/glimmer/lib/templates/input.d.ts',
|
|
109
|
+
'@ember/-internals/glimmer/lib/templates/link-to.d.ts',
|
|
110
|
+
'@ember/-internals/glimmer/lib/templates/outlet.d.ts',
|
|
111
|
+
'@ember/-internals/glimmer/lib/templates/root.d.ts',
|
|
112
|
+
'@ember/-internals/glimmer/lib/templates/textarea.d.ts',
|
|
113
|
+
];
|
|
114
|
+
|
|
402
115
|
async function main() {
|
|
403
|
-
fs.
|
|
404
|
-
fs.
|
|
116
|
+
await fs.rm(TYPES_DIR, { recursive: true, force: true });
|
|
117
|
+
await fs.mkdir(TYPES_DIR, { recursive: true });
|
|
118
|
+
|
|
119
|
+
doOrDie(() => spawnSync('yarn', ['tsc', '--project', 'tsconfig/publish-types.json']));
|
|
120
|
+
|
|
121
|
+
let remappedLocationExcludes = await doOrDie(copyHandwrittenDefinitions);
|
|
122
|
+
let sideEffectExcludes = await doOrDie(copyRemappedLocationModules);
|
|
405
123
|
|
|
406
|
-
|
|
124
|
+
// The majority of those items should be excluded entirely, but in some cases
|
|
125
|
+
// we still need to post-process them.
|
|
126
|
+
let excludes = remappedLocationExcludes
|
|
127
|
+
.concat(sideEffectExcludes)
|
|
128
|
+
.filter((excluded) => !HAND_COPIED_BUT_NEEDS_POSTPROCESSING.includes(excluded));
|
|
407
129
|
|
|
408
130
|
// This is rooted in the `TYPES_DIR` so that the result is just the names of
|
|
409
|
-
// the modules, as generated directly from the tsconfig above.
|
|
410
|
-
|
|
131
|
+
// the modules, as generated directly from the tsconfig above. These must
|
|
132
|
+
// *all* appear in the final set of `/// <reference ...>`s we emit.
|
|
133
|
+
let allModules = glob.sync('**/*.d.ts', {
|
|
411
134
|
ignore: 'index.d.ts', // ignore the root file itself if it somehow exists
|
|
412
135
|
cwd: TYPES_DIR,
|
|
413
136
|
});
|
|
414
137
|
|
|
415
|
-
let
|
|
416
|
-
|
|
417
|
-
let result = processModule(moduleName);
|
|
418
|
-
if (result !== 'success') {
|
|
419
|
-
status = result;
|
|
420
|
-
}
|
|
421
|
-
}
|
|
138
|
+
let missing = excludes.filter((excluded) => !allModules.includes(excluded));
|
|
139
|
+
if (missing.length) console.error('Did not capture modules:', ...missing);
|
|
422
140
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
// We also need to replace `.d.ts` entirely:
|
|
433
|
-
//
|
|
434
|
-
// `@ember/utils/lib/compare.d.ts` -> `@ember/utils/lib/compare`
|
|
435
|
-
//
|
|
436
|
-
// Otherwise, the modules won't be resolved correctly via the side-effect
|
|
437
|
-
// imports.
|
|
438
|
-
let moduleOrPackagePath = moduleName.replace(/\/index.d.ts$/, '').replace('.d.ts', '');
|
|
439
|
-
|
|
440
|
-
// Then create a relative path *to* the path on disk so that the
|
|
441
|
-
// side-effect import is e.g. `import './@ember/owner';`, which makes it
|
|
442
|
-
// resolve the actual local file, *not* go looking for some other package.
|
|
443
|
-
return `import './${moduleOrPackagePath}';`;
|
|
444
|
-
})
|
|
141
|
+
// However, we only want to process (i.e. rewrite) a subset of the modules.
|
|
142
|
+
let modulesToProcess = allModules.filter((moduleName) => !excludes.includes(moduleName));
|
|
143
|
+
let status = await doOrDie(async () => {
|
|
144
|
+
let values = await Promise.all(modulesToProcess.map(processModule));
|
|
145
|
+
return values.some((value) => value === 'failure') ? 'failure' : 'success';
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
let moduleReferences = allModules
|
|
149
|
+
.map((moduleName) => `/// <reference path="./${moduleName}" />`)
|
|
445
150
|
.join('\n');
|
|
446
151
|
|
|
447
|
-
let stableIndexDTsContents = BASE_INDEX_D_TS.replace(MODULES_PLACEHOLDER,
|
|
448
|
-
fs.
|
|
152
|
+
let stableIndexDTsContents = BASE_INDEX_D_TS.replace(MODULES_PLACEHOLDER, moduleReferences);
|
|
153
|
+
await fs.writeFile(path.join(TYPES_DIR, 'index.d.ts'), stableIndexDTsContents);
|
|
449
154
|
|
|
450
155
|
// Make the generated types easier to read!
|
|
451
156
|
spawnSync('prettier', ['--write', 'types/stable/**/*.ts']);
|
|
@@ -453,19 +158,81 @@ async function main() {
|
|
|
453
158
|
process.exit(status === 'success' ? 0 : 1);
|
|
454
159
|
}
|
|
455
160
|
|
|
161
|
+
const REMAPPED_LOCATION_MODULES = [
|
|
162
|
+
{
|
|
163
|
+
input: 'packages/loader/lib/index.d.ts',
|
|
164
|
+
output: 'require.d.ts',
|
|
165
|
+
},
|
|
166
|
+
];
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
"Emit" hand-authored `.d.ts` modules for modules which need to live in a
|
|
170
|
+
different location in the output than in the input tree, e.g. for the loader,
|
|
171
|
+
which creates runtime modules at a different location than its source location
|
|
172
|
+
naturally corresponds to. These represent modules which need to be copied over
|
|
173
|
+
and then *left exactly as they are*.
|
|
174
|
+
|
|
175
|
+
@returns {Promise<string[]>} an array of module names to exclude from the rest of the
|
|
176
|
+
post-processing steps
|
|
177
|
+
*/
|
|
178
|
+
function copyRemappedLocationModules() {
|
|
179
|
+
return doOrDie(() => {
|
|
180
|
+
return Promise.all(
|
|
181
|
+
REMAPPED_LOCATION_MODULES.map(async ({ input, output }) => {
|
|
182
|
+
await fs.cp(input, path.join(TYPES_DIR, output), { recursive: true });
|
|
183
|
+
return output;
|
|
184
|
+
})
|
|
185
|
+
);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
"Emit" hand-authored `.d.ts` file representing runtime JS modules which are
|
|
191
|
+
generated by the build system, like the `.d.ts` files for templates. Since
|
|
192
|
+
`tsc` ignores loose `.d.ts` files in the source of a project, these must
|
|
193
|
+
simply be copied over manually.
|
|
194
|
+
|
|
195
|
+
Exclude from this list any items we also copy via `copySideEffectModules`() so
|
|
196
|
+
we do not end up with duplicates (while that *should* still work given our
|
|
197
|
+
current design for publishing, it is a "happens to" rather than "is naturally
|
|
198
|
+
correct", so we want to avoid that).
|
|
199
|
+
|
|
200
|
+
@returns {Promise<Array<string>>} The modules copied over by hand.
|
|
201
|
+
*/
|
|
202
|
+
async function copyHandwrittenDefinitions() {
|
|
203
|
+
let inputDir = 'packages';
|
|
204
|
+
let definitionModules = glob
|
|
205
|
+
.sync('**/*.d.ts', {
|
|
206
|
+
cwd: inputDir,
|
|
207
|
+
})
|
|
208
|
+
.filter((moduleName) => !REMAPPED_LOCATION_MODULES.some(({ input }) => input === moduleName));
|
|
209
|
+
|
|
210
|
+
await doOrDie(() =>
|
|
211
|
+
Promise.all(
|
|
212
|
+
definitionModules.map((moduleName) => {
|
|
213
|
+
let input = path.join(inputDir, moduleName);
|
|
214
|
+
let output = path.join(TYPES_DIR, moduleName);
|
|
215
|
+
return fs.cp(input, output, { recursive: true });
|
|
216
|
+
})
|
|
217
|
+
)
|
|
218
|
+
);
|
|
219
|
+
|
|
220
|
+
return definitionModules;
|
|
221
|
+
}
|
|
222
|
+
|
|
456
223
|
/**
|
|
457
224
|
Load the module, rewrite it, and write it back to disk.
|
|
458
225
|
|
|
459
226
|
@param {string} moduleName
|
|
460
|
-
@return {'success' | 'failure'}
|
|
227
|
+
@return {Promise<'success' | 'failure'>}
|
|
461
228
|
*/
|
|
462
|
-
function processModule(moduleName) {
|
|
229
|
+
async function processModule(moduleName) {
|
|
463
230
|
let modulePath = path.join(TYPES_DIR, moduleName);
|
|
464
231
|
|
|
465
232
|
/** @type {string} */
|
|
466
233
|
let contents;
|
|
467
234
|
try {
|
|
468
|
-
contents = fs.
|
|
235
|
+
contents = await fs.readFile(modulePath, { encoding: 'utf-8' });
|
|
469
236
|
} catch (e) {
|
|
470
237
|
console.error(`Error reading ${modulePath}: ${e}`);
|
|
471
238
|
return 'failure';
|
|
@@ -482,7 +249,7 @@ function processModule(moduleName) {
|
|
|
482
249
|
}
|
|
483
250
|
|
|
484
251
|
try {
|
|
485
|
-
fs.
|
|
252
|
+
await fs.writeFile(modulePath, rewrittenModule);
|
|
486
253
|
} catch (e) {
|
|
487
254
|
console.error(`Error writing ${modulePath}: ${e}`);
|
|
488
255
|
return 'failure';
|
|
@@ -517,8 +284,18 @@ export function rewriteModule(code, moduleName) {
|
|
|
517
284
|
// things which rely on declaration merging can work, but they need to be
|
|
518
285
|
// emitted *outside* the `declare module` we are introducing.
|
|
519
286
|
visitTSModuleDeclaration(path) {
|
|
520
|
-
|
|
521
|
-
|
|
287
|
+
// ...but we need to *avoid* doing this for namespace declarations! So we
|
|
288
|
+
// *only* do it for cases where we are sure, since `declare module` will
|
|
289
|
+
// always have a string literal, while `declare namespace` will have an
|
|
290
|
+
// actual identifier instead.
|
|
291
|
+
if (path.node.id.type == 'StringLiteral') {
|
|
292
|
+
otherModuleDeclarations.push(path.node);
|
|
293
|
+
path.prune(path.node);
|
|
294
|
+
} else {
|
|
295
|
+
// Where we have a `declare namespace` type, we need to emit it without
|
|
296
|
+
// the `declare`, as with other items.
|
|
297
|
+
path.node.declare = false;
|
|
298
|
+
}
|
|
522
299
|
this.traverse(path);
|
|
523
300
|
},
|
|
524
301
|
|
|
@@ -572,7 +349,7 @@ export function rewriteModule(code, moduleName) {
|
|
|
572
349
|
// This makes it so that the types we publish point to the types defined
|
|
573
350
|
// by `backburner.js`, basically doing the type-time equivalent of the
|
|
574
351
|
// no good, very bad runtime shenanigans Ember does... *somewhere*... in
|
|
575
|
-
// the build to make `import Backburner from 'backburner'` work.
|
|
352
|
+
// the build to make `import Backburner from 'backburner.js'` work.
|
|
576
353
|
if (source.value === 'backburner') {
|
|
577
354
|
source.value = 'backburner.js';
|
|
578
355
|
}
|
|
@@ -680,10 +457,7 @@ function normalizeSpecifier(moduleName, specifier) {
|
|
|
680
457
|
// chunks comprising host module, because we need to *not* treat the current
|
|
681
458
|
// module itself as a parent. If we're not in a "root" module, we need to
|
|
682
459
|
// do it an extra time to get rid of the terminal `foo.d.ts` as well.
|
|
683
|
-
|
|
684
|
-
if (terminal?.endsWith('.d.ts')) {
|
|
685
|
-
parentPathChunks.pop();
|
|
686
|
-
}
|
|
460
|
+
parentPathChunks.pop();
|
|
687
461
|
|
|
688
462
|
// Walk back from the end of the specifier, replacing `..` with chunks from
|
|
689
463
|
// the parent paths.
|
|
@@ -697,7 +471,12 @@ function normalizeSpecifier(moduleName, specifier) {
|
|
|
697
471
|
`Could not generate a valid path for relative path specifier ${specifier} in ${moduleName}`
|
|
698
472
|
);
|
|
699
473
|
}
|
|
700
|
-
|
|
474
|
+
|
|
475
|
+
// If we get to `@ember`, we know we're at the root and we *need* to
|
|
476
|
+
// retain it. Otherwise, we're not there yet and should keep moving up.
|
|
477
|
+
if (parent === '@ember') {
|
|
478
|
+
merged.push(parent);
|
|
479
|
+
}
|
|
701
480
|
} else {
|
|
702
481
|
merged.push(chunk);
|
|
703
482
|
}
|
|
@@ -714,5 +493,19 @@ function normalizeSpecifier(moduleName, specifier) {
|
|
|
714
493
|
}
|
|
715
494
|
}
|
|
716
495
|
|
|
717
|
-
|
|
496
|
+
/**
|
|
497
|
+
* @template T
|
|
498
|
+
* @param {() => T} fn
|
|
499
|
+
* @returns {T}
|
|
500
|
+
*/
|
|
501
|
+
function doOrDie(fn) {
|
|
502
|
+
try {
|
|
503
|
+
return fn();
|
|
504
|
+
} catch (e) {
|
|
505
|
+
console.log(e);
|
|
506
|
+
process.exit(1);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
// --- Actually execute the program! --- //
|
|
718
511
|
main();
|
|
@@ -443,7 +443,12 @@ declare module '@ember/-internals/glimmer' {
|
|
|
443
443
|
export { default as LinkTo } from '@ember/-internals/glimmer/lib/components/link-to';
|
|
444
444
|
export { default as Textarea } from '@ember/-internals/glimmer/lib/components/textarea';
|
|
445
445
|
export { default as Component } from '@ember/-internals/glimmer/lib/component';
|
|
446
|
-
export {
|
|
446
|
+
export {
|
|
447
|
+
default as Helper,
|
|
448
|
+
helper,
|
|
449
|
+
type FunctionBasedHelper,
|
|
450
|
+
type FunctionBasedHelperInstance,
|
|
451
|
+
} from '@ember/-internals/glimmer/lib/helper';
|
|
447
452
|
export {
|
|
448
453
|
SafeString,
|
|
449
454
|
escapeExpression,
|