static-injector 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/import/commonjs/index.js +127 -197
  2. package/import/{es2015 → es2022}/di/create_injector.js +0 -2
  3. package/import/{es2015 → es2022}/di/forward_ref.js +29 -2
  4. package/import/{es2015 → es2022}/di/injection_token.js +5 -3
  5. package/import/{es2015 → es2022}/di/injector.js +15 -16
  6. package/import/{es2015 → es2022}/di/injector_compatibility.js +8 -3
  7. package/import/{es2015 → es2022}/di/interface/defs.js +2 -16
  8. package/import/{es2015 → es2022}/di/interface/injector.js +1 -1
  9. package/import/es2022/di/provider_collection.js +104 -0
  10. package/import/{es2015 → es2022}/di/r3_injector.js +46 -15
  11. package/import/{es2015 → es2022}/errors.js +4 -2
  12. package/import/{es2015 → es2022}/render3/error_code.js +1 -0
  13. package/import/es2022/render3/fields.js +22 -0
  14. package/import/{fesm2015 → fesm2022}/index.js +127 -198
  15. package/import/typings/di/create_injector.d.ts +3 -5
  16. package/import/typings/di/forward_ref.d.ts +29 -2
  17. package/import/typings/di/inject_switch.d.ts +1 -1
  18. package/import/typings/di/injection_token.d.ts +1 -1
  19. package/import/typings/di/injector.d.ts +3 -3
  20. package/import/typings/di/injector_compatibility.d.ts +1 -0
  21. package/import/typings/di/interface/defs.d.ts +2 -1
  22. package/import/typings/di/interface/injector.d.ts +2 -2
  23. package/import/typings/di/interface/provider.d.ts +7 -7
  24. package/import/typings/di/metadata.d.ts +4 -4
  25. package/import/typings/di/provider_collection.d.ts +1 -12
  26. package/import/typings/di/r3_injector.d.ts +8 -6
  27. package/import/typings/di/scope.d.ts +1 -1
  28. package/import/typings/errors.d.ts +28 -3
  29. package/import/typings/render3/fields.d.ts +9 -0
  30. package/import/typings/util/decorators.d.ts +1 -0
  31. package/package.json +7 -7
  32. package/readme.md +4 -1
  33. package/transform/compiler/src/injectable_compiler_2.d.ts +0 -1
  34. package/transform/compiler/src/injectable_compiler_2.js +31 -16
  35. package/transform/compiler/src/output/output_ast.d.ts +53 -10
  36. package/transform/compiler/src/output/output_ast.js +211 -12
  37. package/transform/compiler/src/parse_util.js +10 -0
  38. package/transform/compiler/src/render3/partial/api.js +1 -1
  39. package/transform/compiler/src/render3/r3_factory.d.ts +0 -8
  40. package/transform/compiler/src/render3/r3_factory.js +5 -4
  41. package/transform/compiler/src/render3/r3_identifiers.js +37 -37
  42. package/transform/compiler/src/render3/view/util.js +1 -3
  43. package/transform/compiler-cli/src/ngtsc/annotations/common/src/di.js +2 -4
  44. package/transform/compiler-cli/src/ngtsc/annotations/common/src/factory.js +1 -0
  45. package/transform/compiler-cli/src/ngtsc/annotations/common/src/util.d.ts +1 -1
  46. package/transform/compiler-cli/src/ngtsc/annotations/common/src/util.js +5 -9
  47. package/transform/compiler-cli/src/ngtsc/annotations/src/injectable.d.ts +2 -1
  48. package/transform/compiler-cli/src/ngtsc/annotations/src/injectable.js +12 -8
  49. package/transform/compiler-cli/src/ngtsc/diagnostics/error.d.ts +2 -2
  50. package/transform/compiler-cli/src/ngtsc/diagnostics/error.js +8 -4
  51. package/transform/compiler-cli/src/ngtsc/diagnostics/error_code.js +1 -1
  52. package/transform/compiler-cli/src/ngtsc/imports/src/default.js +1 -2
  53. package/transform/compiler-cli/src/ngtsc/reflection/src/host.d.ts +24 -173
  54. package/transform/compiler-cli/src/ngtsc/reflection/src/host.js +2 -51
  55. package/transform/compiler-cli/src/ngtsc/reflection/src/typescript.d.ts +5 -3
  56. package/transform/compiler-cli/src/ngtsc/reflection/src/typescript.js +5 -10
  57. package/transform/compiler-cli/src/ngtsc/transform/src/api.d.ts +5 -23
  58. package/transform/compiler-cli/src/ngtsc/transform/src/api.js +0 -21
  59. package/transform/compiler-cli/src/ngtsc/transform/src/utils.js +1 -2
  60. package/transform/compiler-cli/src/ngtsc/translator/src/api/ast_factory.d.ts +7 -0
  61. package/transform/compiler-cli/src/ngtsc/translator/src/context.js +1 -0
  62. package/transform/compiler-cli/src/ngtsc/translator/src/import_manager.js +4 -2
  63. package/transform/compiler-cli/src/ngtsc/translator/src/translator.d.ts +1 -0
  64. package/transform/compiler-cli/src/ngtsc/translator/src/translator.js +10 -4
  65. package/transform/compiler-cli/src/ngtsc/translator/src/typescript_ast_factory.d.ts +2 -1
  66. package/transform/compiler-cli/src/ngtsc/translator/src/typescript_ast_factory.js +20 -16
  67. package/transform/injectable-transform.d.ts +2 -2
  68. package/transform/injectable-transform.js +32 -6
  69. package/import/es2015/di/provider_collection.js +0 -244
  70. package/import/es2015/render3/fields.js +0 -11
  71. /package/import/{es2015 → es2022}/di/initializer_token.js +0 -0
  72. /package/import/{es2015 → es2022}/di/inject_switch.js +0 -0
  73. /package/import/{es2015 → es2022}/di/injectable.js +0 -0
  74. /package/import/{es2015 → es2022}/di/injector_marker.js +0 -0
  75. /package/import/{es2015 → es2022}/di/injector_token.js +0 -0
  76. /package/import/{es2015 → es2022}/di/interface/provider.js +0 -0
  77. /package/import/{es2015 → es2022}/di/internal_tokens.js +0 -0
  78. /package/import/{es2015 → es2022}/di/metadata.js +0 -0
  79. /package/import/{es2015 → es2022}/di/null_injector.js +0 -0
  80. /package/import/{es2015 → es2022}/di/provider_token.js +0 -0
  81. /package/import/{es2015 → es2022}/di/scope.js +0 -0
  82. /package/import/{es2015 → es2022}/error_details_base_url.js +0 -0
  83. /package/import/{es2015 → es2022}/index.js +0 -0
  84. /package/import/{es2015 → es2022}/interface/lifecycle_hooks.js +0 -0
  85. /package/import/{es2015 → es2022}/interface/type.js +0 -0
  86. /package/import/{es2015 → es2022}/render3/definition_factory.js +0 -0
  87. /package/import/{es2015 → es2022}/render3/di.js +0 -0
  88. /package/import/{es2015 → es2022}/render3/errors_di.js +0 -0
  89. /package/import/{es2015 → es2022}/render3/instructions/di.js +0 -0
  90. /package/import/{es2015 → es2022}/render3/util/stringify_utils.js +0 -0
  91. /package/import/{es2015 → es2022}/util/array_utils.js +0 -0
  92. /package/import/{es2015 → es2022}/util/closure.js +0 -0
  93. /package/import/{es2015 → es2022}/util/decorators.js +0 -0
  94. /package/import/{es2015 → es2022}/util/empty.js +0 -0
  95. /package/import/{es2015 → es2022}/util/property.js +0 -0
  96. /package/import/{es2015 → es2022}/util/stringify.js +0 -0
@@ -47,6 +47,11 @@ export declare class MapType extends Type {
47
47
  constructor(valueType: Type | null | undefined, modifiers?: TypeModifier);
48
48
  visitType(visitor: TypeVisitor, context: any): any;
49
49
  }
50
+ export declare class TransplantedType<T> extends Type {
51
+ readonly type: T;
52
+ constructor(type: T, modifiers?: TypeModifier);
53
+ visitType(visitor: TypeVisitor, context: any): any;
54
+ }
50
55
  export declare const DYNAMIC_TYPE: BuiltinType;
51
56
  export declare const INFERRED_TYPE: BuiltinType;
52
57
  export declare const BOOL_TYPE: BuiltinType;
@@ -60,6 +65,7 @@ export interface TypeVisitor {
60
65
  visitExpressionType(type: ExpressionType, context: any): any;
61
66
  visitArrayType(type: ArrayType, context: any): any;
62
67
  visitMapType(type: MapType, context: any): any;
68
+ visitTransplantedType(type: TransplantedType<unknown>, context: any): any;
63
69
  }
64
70
  export declare enum UnaryOperator {
65
71
  Minus = 0,
@@ -104,6 +110,7 @@ export declare abstract class Expression {
104
110
  * Return true if the expression is constant.
105
111
  */
106
112
  abstract isConstant(): boolean;
113
+ abstract clone(): Expression;
107
114
  prop(name: string, sourceSpan?: ParseSourceSpan | null): ReadPropExpr;
108
115
  key(index: Expression, type?: Type | null, sourceSpan?: ParseSourceSpan | null): ReadKeyExpr;
109
116
  callFn(params: Expression[], sourceSpan?: ParseSourceSpan | null, pure?: boolean): InvokeFunctionExpr;
@@ -115,6 +122,7 @@ export declare class ReadVarExpr extends Expression {
115
122
  isEquivalent(e: Expression): boolean;
116
123
  isConstant(): boolean;
117
124
  visitExpression(visitor: ExpressionVisitor, context: any): any;
125
+ clone(): ReadVarExpr;
118
126
  set(value: Expression): WriteVarExpr;
119
127
  }
120
128
  export declare class TypeofExpr extends Expression {
@@ -123,6 +131,7 @@ export declare class TypeofExpr extends Expression {
123
131
  visitExpression(visitor: ExpressionVisitor, context: any): any;
124
132
  isEquivalent(e: Expression): boolean;
125
133
  isConstant(): boolean;
134
+ clone(): TypeofExpr;
126
135
  }
127
136
  export declare class WrappedNodeExpr<T> extends Expression {
128
137
  node: T;
@@ -130,6 +139,7 @@ export declare class WrappedNodeExpr<T> extends Expression {
130
139
  isEquivalent(e: Expression): boolean;
131
140
  isConstant(): boolean;
132
141
  visitExpression(visitor: ExpressionVisitor, context: any): any;
142
+ clone(): WrappedNodeExpr<T>;
133
143
  }
134
144
  export declare class WriteVarExpr extends Expression {
135
145
  name: string;
@@ -138,6 +148,7 @@ export declare class WriteVarExpr extends Expression {
138
148
  isEquivalent(e: Expression): boolean;
139
149
  isConstant(): boolean;
140
150
  visitExpression(visitor: ExpressionVisitor, context: any): any;
151
+ clone(): WriteVarExpr;
141
152
  toDeclStmt(type?: Type | null, modifiers?: StmtModifier): DeclareVarStmt;
142
153
  toConstDecl(): DeclareVarStmt;
143
154
  }
@@ -149,6 +160,7 @@ export declare class WriteKeyExpr extends Expression {
149
160
  isEquivalent(e: Expression): boolean;
150
161
  isConstant(): boolean;
151
162
  visitExpression(visitor: ExpressionVisitor, context: any): any;
163
+ clone(): WriteKeyExpr;
152
164
  }
153
165
  export declare class WritePropExpr extends Expression {
154
166
  receiver: Expression;
@@ -158,15 +170,18 @@ export declare class WritePropExpr extends Expression {
158
170
  isEquivalent(e: Expression): boolean;
159
171
  isConstant(): boolean;
160
172
  visitExpression(visitor: ExpressionVisitor, context: any): any;
173
+ clone(): WritePropExpr;
161
174
  }
162
175
  export declare class InvokeFunctionExpr extends Expression {
163
176
  fn: Expression;
164
177
  args: Expression[];
165
178
  pure: boolean;
166
179
  constructor(fn: Expression, args: Expression[], type?: Type | null, sourceSpan?: ParseSourceSpan | null, pure?: boolean);
180
+ get receiver(): Expression;
167
181
  isEquivalent(e: Expression): boolean;
168
182
  isConstant(): boolean;
169
183
  visitExpression(visitor: ExpressionVisitor, context: any): any;
184
+ clone(): InvokeFunctionExpr;
170
185
  }
171
186
  export declare class InstantiateExpr extends Expression {
172
187
  classExpr: Expression;
@@ -175,6 +190,7 @@ export declare class InstantiateExpr extends Expression {
175
190
  isEquivalent(e: Expression): boolean;
176
191
  isConstant(): boolean;
177
192
  visitExpression(visitor: ExpressionVisitor, context: any): any;
193
+ clone(): InstantiateExpr;
178
194
  }
179
195
  export declare class LiteralExpr extends Expression {
180
196
  value: number | string | boolean | null | undefined;
@@ -182,17 +198,20 @@ export declare class LiteralExpr extends Expression {
182
198
  isEquivalent(e: Expression): boolean;
183
199
  isConstant(): boolean;
184
200
  visitExpression(visitor: ExpressionVisitor, context: any): any;
201
+ clone(): LiteralExpr;
185
202
  }
186
203
  export declare class TemplateLiteral {
187
204
  elements: TemplateLiteralElement[];
188
205
  expressions: Expression[];
189
206
  constructor(elements: TemplateLiteralElement[], expressions: Expression[]);
207
+ clone(): TemplateLiteral;
190
208
  }
191
209
  export declare class TemplateLiteralElement {
192
210
  text: string;
193
- sourceSpan?: ParseSourceSpan;
211
+ sourceSpan?: ParseSourceSpan | undefined;
194
212
  rawText: string;
195
- constructor(text: string, sourceSpan?: ParseSourceSpan, rawText?: string);
213
+ constructor(text: string, sourceSpan?: ParseSourceSpan | undefined, rawText?: string);
214
+ clone(): TemplateLiteralElement;
196
215
  }
197
216
  export declare class LiteralPiece {
198
217
  text: string;
@@ -215,12 +234,13 @@ export declare class ExternalExpr extends Expression {
215
234
  isEquivalent(e: Expression): boolean;
216
235
  isConstant(): boolean;
217
236
  visitExpression(visitor: ExpressionVisitor, context: any): any;
237
+ clone(): ExternalExpr;
218
238
  }
219
239
  export declare class ExternalReference {
220
240
  moduleName: string | null;
221
241
  name: string | null;
222
- runtime?: any | null;
223
- constructor(moduleName: string | null, name: string | null, runtime?: any | null);
242
+ runtime?: any;
243
+ constructor(moduleName: string | null, name: string | null, runtime?: any);
224
244
  }
225
245
  export declare class ConditionalExpr extends Expression {
226
246
  condition: Expression;
@@ -230,6 +250,15 @@ export declare class ConditionalExpr extends Expression {
230
250
  isEquivalent(e: Expression): boolean;
231
251
  isConstant(): boolean;
232
252
  visitExpression(visitor: ExpressionVisitor, context: any): any;
253
+ clone(): ConditionalExpr;
254
+ }
255
+ export declare class DynamicImportExpr extends Expression {
256
+ url: string;
257
+ constructor(url: string, sourceSpan?: ParseSourceSpan | null);
258
+ isEquivalent(e: Expression): boolean;
259
+ isConstant(): boolean;
260
+ visitExpression(visitor: ExpressionVisitor, context: any): any;
261
+ clone(): DynamicImportExpr;
233
262
  }
234
263
  export declare class NotExpr extends Expression {
235
264
  condition: Expression;
@@ -237,22 +266,25 @@ export declare class NotExpr extends Expression {
237
266
  isEquivalent(e: Expression): boolean;
238
267
  isConstant(): boolean;
239
268
  visitExpression(visitor: ExpressionVisitor, context: any): any;
269
+ clone(): NotExpr;
240
270
  }
241
271
  export declare class FnParam {
242
272
  name: string;
243
273
  type: Type | null;
244
274
  constructor(name: string, type?: Type | null);
245
275
  isEquivalent(param: FnParam): boolean;
276
+ clone(): FnParam;
246
277
  }
247
278
  export declare class FunctionExpr extends Expression {
248
279
  params: FnParam[];
249
280
  statements: Statement[];
250
- name?: string | null;
251
- constructor(params: FnParam[], statements: Statement[], type?: Type | null, sourceSpan?: ParseSourceSpan | null, name?: string | null);
281
+ name?: string | null | undefined;
282
+ constructor(params: FnParam[], statements: Statement[], type?: Type | null, sourceSpan?: ParseSourceSpan | null, name?: string | null | undefined);
252
283
  isEquivalent(e: Expression): boolean;
253
284
  isConstant(): boolean;
254
285
  visitExpression(visitor: ExpressionVisitor, context: any): any;
255
286
  toDeclStmt(name: string, modifiers?: StmtModifier): DeclareFunctionStmt;
287
+ clone(): FunctionExpr;
256
288
  }
257
289
  export declare class UnaryOperatorExpr extends Expression {
258
290
  operator: UnaryOperator;
@@ -262,6 +294,7 @@ export declare class UnaryOperatorExpr extends Expression {
262
294
  isEquivalent(e: Expression): boolean;
263
295
  isConstant(): boolean;
264
296
  visitExpression(visitor: ExpressionVisitor, context: any): any;
297
+ clone(): UnaryOperatorExpr;
265
298
  }
266
299
  export declare class BinaryOperatorExpr extends Expression {
267
300
  operator: BinaryOperator;
@@ -272,15 +305,18 @@ export declare class BinaryOperatorExpr extends Expression {
272
305
  isEquivalent(e: Expression): boolean;
273
306
  isConstant(): boolean;
274
307
  visitExpression(visitor: ExpressionVisitor, context: any): any;
308
+ clone(): BinaryOperatorExpr;
275
309
  }
276
310
  export declare class ReadPropExpr extends Expression {
277
311
  receiver: Expression;
278
312
  name: string;
279
313
  constructor(receiver: Expression, name: string, type?: Type | null, sourceSpan?: ParseSourceSpan | null);
314
+ get index(): string;
280
315
  isEquivalent(e: Expression): boolean;
281
316
  isConstant(): boolean;
282
317
  visitExpression(visitor: ExpressionVisitor, context: any): any;
283
318
  set(value: Expression): WritePropExpr;
319
+ clone(): ReadPropExpr;
284
320
  }
285
321
  export declare class ReadKeyExpr extends Expression {
286
322
  receiver: Expression;
@@ -290,6 +326,7 @@ export declare class ReadKeyExpr extends Expression {
290
326
  isConstant(): boolean;
291
327
  visitExpression(visitor: ExpressionVisitor, context: any): any;
292
328
  set(value: Expression): WriteKeyExpr;
329
+ clone(): ReadKeyExpr;
293
330
  }
294
331
  export declare class LiteralArrayExpr extends Expression {
295
332
  entries: Expression[];
@@ -297,6 +334,7 @@ export declare class LiteralArrayExpr extends Expression {
297
334
  isConstant(): boolean;
298
335
  isEquivalent(e: Expression): boolean;
299
336
  visitExpression(visitor: ExpressionVisitor, context: any): any;
337
+ clone(): LiteralArrayExpr;
300
338
  }
301
339
  export declare class LiteralMapEntry {
302
340
  key: string;
@@ -304,6 +342,7 @@ export declare class LiteralMapEntry {
304
342
  quoted: boolean;
305
343
  constructor(key: string, value: Expression, quoted: boolean);
306
344
  isEquivalent(e: LiteralMapEntry): boolean;
345
+ clone(): LiteralMapEntry;
307
346
  }
308
347
  export declare class LiteralMapExpr extends Expression {
309
348
  entries: LiteralMapEntry[];
@@ -312,6 +351,7 @@ export declare class LiteralMapExpr extends Expression {
312
351
  isEquivalent(e: Expression): boolean;
313
352
  isConstant(): boolean;
314
353
  visitExpression(visitor: ExpressionVisitor, context: any): any;
354
+ clone(): LiteralMapExpr;
315
355
  }
316
356
  export declare class CommaExpr extends Expression {
317
357
  parts: Expression[];
@@ -319,6 +359,7 @@ export declare class CommaExpr extends Expression {
319
359
  isEquivalent(e: Expression): boolean;
320
360
  isConstant(): boolean;
321
361
  visitExpression(visitor: ExpressionVisitor, context: any): any;
362
+ clone(): CommaExpr;
322
363
  }
323
364
  export interface ExpressionVisitor {
324
365
  visitReadVarExpr(ast: ReadVarExpr, context: any): any;
@@ -330,6 +371,7 @@ export interface ExpressionVisitor {
330
371
  visitLiteralExpr(ast: LiteralExpr, context: any): any;
331
372
  visitExternalExpr(ast: ExternalExpr, context: any): any;
332
373
  visitConditionalExpr(ast: ConditionalExpr, context: any): any;
374
+ visitDynamicImportExpr(ast: DynamicImportExpr, context: any): any;
333
375
  visitNotExpr(ast: NotExpr, context: any): any;
334
376
  visitFunctionExpr(ast: FunctionExpr, context: any): any;
335
377
  visitUnaryOperatorExpr(ast: UnaryOperatorExpr, context: any): any;
@@ -366,8 +408,8 @@ export declare class JSDocComment extends LeadingComment {
366
408
  export declare abstract class Statement {
367
409
  modifiers: StmtModifier;
368
410
  sourceSpan: ParseSourceSpan | null;
369
- leadingComments?: LeadingComment[];
370
- constructor(modifiers?: StmtModifier, sourceSpan?: ParseSourceSpan | null, leadingComments?: LeadingComment[]);
411
+ leadingComments?: LeadingComment[] | undefined;
412
+ constructor(modifiers?: StmtModifier, sourceSpan?: ParseSourceSpan | null, leadingComments?: LeadingComment[] | undefined);
371
413
  /**
372
414
  * Calculates whether this statement produces the same value as the given statement.
373
415
  * Note: We don't check Types nor ParseSourceSpans nor function arguments.
@@ -379,9 +421,9 @@ export declare abstract class Statement {
379
421
  }
380
422
  export declare class DeclareVarStmt extends Statement {
381
423
  name: string;
382
- value?: Expression;
424
+ value?: Expression | undefined;
383
425
  type: Type | null;
384
- constructor(name: string, value?: Expression, type?: Type | null, modifiers?: StmtModifier, sourceSpan?: ParseSourceSpan | null, leadingComments?: LeadingComment[]);
426
+ constructor(name: string, value?: Expression | undefined, type?: Type | null, modifiers?: StmtModifier, sourceSpan?: ParseSourceSpan | null, leadingComments?: LeadingComment[]);
385
427
  isEquivalent(stmt: Statement): boolean;
386
428
  visitStatement(visitor: StatementVisitor, context: any): any;
387
429
  }
@@ -427,6 +469,7 @@ export declare function variable(name: string, type?: Type | null, sourceSpan?:
427
469
  export declare function importExpr(id: ExternalReference, typeParams?: Type[] | null, sourceSpan?: ParseSourceSpan | null): ExternalExpr;
428
470
  export declare function importType(id: ExternalReference, typeParams?: Type[] | null, typeModifiers?: TypeModifier): ExpressionType | null;
429
471
  export declare function expressionType(expr: Expression, typeModifiers?: TypeModifier, typeParams?: Type[] | null): ExpressionType;
472
+ export declare function transplantedType<T>(type: T, typeModifiers?: TypeModifier): TransplantedType<T>;
430
473
  export declare function typeofExpr(expr: Expression): TypeofExpr;
431
474
  export declare function literalArr(values: Expression[], type?: Type | null, sourceSpan?: ParseSourceSpan | null): LiteralArrayExpr;
432
475
  export declare function literalMap(values: {