static-injector 1.0.10 → 2.1.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 (111) hide show
  1. package/import/commonjs/index.js +337 -124
  2. package/import/es2015/di/create_injector.js +30 -0
  3. package/import/es2015/di/initializer_token.js +15 -0
  4. package/import/es2015/di/inject_switch.js +27 -6
  5. package/import/es2015/di/injection_token.js +6 -0
  6. package/import/es2015/di/injector.js +6 -8
  7. package/import/es2015/di/injector_compatibility.js +90 -34
  8. package/import/es2015/di/injector_token.js +1 -1
  9. package/import/es2015/di/interface/defs.js +39 -0
  10. package/import/es2015/di/interface/injector.js +1 -0
  11. package/import/es2015/di/internal_tokens.js +9 -0
  12. package/import/es2015/di/metadata.js +4 -4
  13. package/import/es2015/di/provider_collection.js +49 -0
  14. package/import/es2015/di/r3_injector.js +102 -72
  15. package/import/es2015/di/scope.js +2 -2
  16. package/import/es2015/index.js +1 -1
  17. package/import/es2015/render3/errors_di.js +1 -1
  18. package/import/fesm2015/index.js +328 -114
  19. package/import/typings/di/create_injector.d.ts +23 -0
  20. package/import/typings/di/initializer_token.d.ts +15 -0
  21. package/import/typings/di/inject_switch.d.ts +7 -2
  22. package/import/typings/{decorator → di}/injectable.d.ts +2 -2
  23. package/import/typings/di/injection_token.d.ts +4 -0
  24. package/import/typings/di/injector.d.ts +20 -7
  25. package/import/typings/di/injector_compatibility.d.ts +42 -21
  26. package/import/typings/di/interface/defs.d.ts +10 -0
  27. package/import/typings/di/interface/injector.d.ts +26 -0
  28. package/import/typings/di/interface/provider.d.ts +3 -8
  29. package/import/typings/di/internal_tokens.d.ts +10 -0
  30. package/import/typings/di/provider_collection.d.ts +30 -0
  31. package/import/typings/di/provider_token.d.ts +1 -1
  32. package/import/typings/di/r3_injector.d.ts +68 -37
  33. package/import/typings/di/scope.d.ts +3 -2
  34. package/import/typings/index.d.ts +1 -1
  35. package/import/typings/render3/definition_factory.d.ts +1 -1
  36. package/package.json +5 -3
  37. package/{import/es2015/decorator/interface/provider.js → transform/compiler/compiler.d.ts} +1 -1
  38. package/transform/compiler/compiler.js +28 -0
  39. package/transform/compiler/index.d.ts +8 -5
  40. package/transform/compiler/index.js +17 -6
  41. package/transform/compiler/public_api.d.ts +13 -0
  42. package/transform/compiler/public_api.js +30 -0
  43. package/transform/compiler/src/compiler.d.ts +27 -0
  44. package/transform/compiler/src/compiler.js +47 -0
  45. package/transform/compiler/src/injectable_compiler_2.d.ts +7 -36
  46. package/transform/compiler/src/injectable_compiler_2.js +20 -23
  47. package/transform/compiler/src/output/output_ast.d.ts +30 -109
  48. package/transform/compiler/src/output/output_ast.js +66 -188
  49. package/transform/compiler/src/render3/partial/api.d.ts +1 -1
  50. package/transform/compiler/src/render3/partial/api.js +7 -0
  51. package/transform/compiler/src/render3/r3_factory.d.ts +8 -15
  52. package/transform/compiler/src/render3/r3_factory.js +46 -61
  53. package/transform/compiler/src/render3/util.d.ts +64 -0
  54. package/transform/compiler/src/render3/util.js +52 -9
  55. package/transform/compiler/src/render3/view/util.d.ts +0 -8
  56. package/transform/compiler/src/render3/view/util.js +5 -9
  57. package/transform/compiler-cli/src/ngtsc/annotations/common/index.d.ts +10 -0
  58. package/transform/compiler-cli/src/ngtsc/annotations/common/index.js +26 -0
  59. package/transform/compiler-cli/src/ngtsc/annotations/common/src/di.d.ts +37 -0
  60. package/transform/compiler-cli/src/ngtsc/annotations/common/src/di.js +197 -0
  61. package/transform/compiler-cli/src/ngtsc/annotations/{src → common/src}/factory.d.ts +3 -3
  62. package/transform/compiler-cli/src/ngtsc/annotations/{src → common/src}/factory.js +3 -3
  63. package/transform/compiler-cli/src/ngtsc/annotations/{src → common/src}/util.d.ts +4 -34
  64. package/transform/compiler-cli/src/ngtsc/annotations/common/src/util.js +181 -0
  65. package/transform/compiler-cli/src/ngtsc/annotations/src/injectable.d.ts +3 -4
  66. package/transform/compiler-cli/src/ngtsc/annotations/src/injectable.js +46 -53
  67. package/transform/compiler-cli/src/ngtsc/diagnostics/error.js +6 -2
  68. package/transform/compiler-cli/src/ngtsc/diagnostics/index.d.ts +9 -2
  69. package/transform/compiler-cli/src/ngtsc/diagnostics/index.js +12 -1
  70. package/transform/compiler-cli/src/ngtsc/imports/index.d.ts +7 -0
  71. package/transform/compiler-cli/src/ngtsc/imports/index.js +12 -1
  72. package/transform/compiler-cli/src/ngtsc/imports/src/default.d.ts +19 -0
  73. package/transform/compiler-cli/src/ngtsc/imports/src/default.js +28 -0
  74. package/transform/compiler-cli/src/ngtsc/reflection/index.d.ts +10 -3
  75. package/transform/compiler-cli/src/ngtsc/reflection/index.js +12 -1
  76. package/transform/compiler-cli/src/ngtsc/reflection/src/host.d.ts +13 -14
  77. package/transform/compiler-cli/src/ngtsc/reflection/src/host.js +8 -25
  78. package/transform/compiler-cli/src/ngtsc/reflection/src/type_to_value.d.ts +2 -2
  79. package/transform/compiler-cli/src/ngtsc/reflection/src/type_to_value.js +44 -55
  80. package/transform/compiler-cli/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  81. package/transform/compiler-cli/src/ngtsc/reflection/src/typescript.js +55 -69
  82. package/transform/compiler-cli/src/ngtsc/reflection/src/util.d.ts +2 -2
  83. package/transform/compiler-cli/src/ngtsc/reflection/src/util.js +7 -23
  84. package/transform/compiler-cli/src/ngtsc/transform/index.d.ts +9 -2
  85. package/transform/compiler-cli/src/ngtsc/transform/index.js +12 -1
  86. package/transform/compiler-cli/src/ngtsc/transform/src/api.d.ts +4 -4
  87. package/transform/compiler-cli/src/ngtsc/transform/src/utils.d.ts +2 -2
  88. package/transform/compiler-cli/src/ngtsc/transform/src/utils.js +16 -31
  89. package/transform/compiler-cli/src/ngtsc/translator/index.d.ts +12 -5
  90. package/transform/compiler-cli/src/ngtsc/translator/index.js +12 -1
  91. package/transform/compiler-cli/src/ngtsc/translator/src/api/ast_factory.d.ts +5 -5
  92. package/transform/compiler-cli/src/ngtsc/translator/src/import_manager.d.ts +4 -4
  93. package/transform/compiler-cli/src/ngtsc/translator/src/import_manager.js +5 -21
  94. package/transform/compiler-cli/src/ngtsc/translator/src/translator.d.ts +2 -6
  95. package/transform/compiler-cli/src/ngtsc/translator/src/translator.js +6 -18
  96. package/transform/compiler-cli/src/ngtsc/translator/src/typescript_ast_factory.d.ts +3 -6
  97. package/transform/compiler-cli/src/ngtsc/translator/src/typescript_ast_factory.js +83 -90
  98. package/transform/compiler-cli/src/ngtsc/translator/src/typescript_translator.d.ts +4 -4
  99. package/transform/compiler-cli/src/ngtsc/ts_compatibility/index.d.ts +8 -0
  100. package/transform/compiler-cli/src/ngtsc/ts_compatibility/index.js +24 -0
  101. package/transform/compiler-cli/src/ngtsc/ts_compatibility/src/ts_cross_version_utils.d.ts +45 -0
  102. package/transform/compiler-cli/src/ngtsc/ts_compatibility/src/ts_cross_version_utils.js +86 -0
  103. package/transform/compiler-cli/src/ngtsc/util/src/typescript.d.ts +1 -8
  104. package/transform/compiler-cli/src/ngtsc/util/src/typescript.js +4 -27
  105. package/transform/index.js +5 -1
  106. package/transform/injectable-transform.js +59 -38
  107. package/import/typings/decorator/interface/provider.d.ts +0 -312
  108. package/transform/compiler/src/render3/partial/util.d.ts +0 -16
  109. package/transform/compiler/src/render3/partial/util.js +0 -44
  110. package/transform/compiler-cli/src/ngtsc/annotations/src/util.js +0 -370
  111. /package/import/es2015/{decorator → di}/injectable.js +0 -0
@@ -7,19 +7,20 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.LiteralArrayExpr = exports.ReadKeyExpr = exports.ReadPropExpr = exports.BinaryOperatorExpr = exports.UnaryOperatorExpr = exports.FunctionExpr = exports.FnParam = exports.CastExpr = exports.AssertNotNull = exports.NotExpr = exports.ConditionalExpr = exports.ExternalReference = exports.ExternalExpr = exports.PlaceholderPiece = exports.LiteralPiece = exports.MessagePiece = exports.TemplateLiteralElement = exports.TemplateLiteral = exports.LiteralExpr = exports.InstantiateExpr = exports.InvokeFunctionExpr = exports.InvokeMethodExpr = exports.BuiltinMethod = exports.WritePropExpr = exports.WriteKeyExpr = exports.WriteVarExpr = exports.WrappedNodeExpr = exports.TypeofExpr = exports.ReadVarExpr = exports.BuiltinVar = exports.Expression = exports.areAllEquivalent = exports.nullSafeIsEquivalent = exports.BinaryOperator = exports.UnaryOperator = exports.NONE_TYPE = exports.FUNCTION_TYPE = exports.STRING_TYPE = exports.NUMBER_TYPE = exports.INT_TYPE = exports.BOOL_TYPE = exports.INFERRED_TYPE = exports.DYNAMIC_TYPE = exports.MapType = exports.ArrayType = exports.ExpressionType = exports.BuiltinType = exports.BuiltinTypeName = exports.Type = exports.TypeModifier = void 0;
11
- exports.isNull = exports.literal = exports.ifStmt = exports.fn = exports.assertNotNull = exports.not = exports.unary = exports.literalMap = exports.literalArr = exports.typeofExpr = exports.expressionType = exports.importExpr = exports.variable = exports.IfStmt = exports.ClassStmt = exports.ClassGetter = exports.ClassMethod = exports.ClassField = exports.AbstractClassPart = exports.ReturnStatement = exports.ExpressionStatement = exports.DeclareFunctionStmt = exports.DeclareVarStmt = exports.Statement = exports.JSDocComment = exports.LeadingComment = exports.StmtModifier = exports.TYPED_NULL_EXPR = exports.NULL_EXPR = exports.CATCH_STACK_VAR = exports.CATCH_ERROR_VAR = exports.SUPER_EXPR = exports.THIS_EXPR = exports.CommaExpr = exports.LiteralMapExpr = exports.LiteralMapEntry = void 0;
10
+ exports.LeadingComment = exports.StmtModifier = exports.TYPED_NULL_EXPR = exports.NULL_EXPR = exports.CommaExpr = exports.LiteralMapExpr = exports.LiteralMapEntry = exports.LiteralArrayExpr = exports.ReadKeyExpr = exports.ReadPropExpr = exports.BinaryOperatorExpr = exports.UnaryOperatorExpr = exports.FunctionExpr = exports.FnParam = exports.NotExpr = exports.ConditionalExpr = exports.ExternalReference = exports.ExternalExpr = exports.LiteralPiece = exports.TemplateLiteralElement = exports.TemplateLiteral = exports.LiteralExpr = exports.InstantiateExpr = exports.InvokeFunctionExpr = exports.WritePropExpr = exports.WriteKeyExpr = exports.WriteVarExpr = exports.WrappedNodeExpr = exports.TypeofExpr = exports.ReadVarExpr = exports.Expression = exports.areAllEquivalent = exports.nullSafeIsEquivalent = exports.BinaryOperator = exports.UnaryOperator = exports.NONE_TYPE = exports.FUNCTION_TYPE = exports.STRING_TYPE = exports.NUMBER_TYPE = exports.INT_TYPE = exports.BOOL_TYPE = exports.INFERRED_TYPE = exports.DYNAMIC_TYPE = exports.MapType = exports.ArrayType = exports.ExpressionType = exports.BuiltinType = exports.BuiltinTypeName = exports.Type = exports.TypeModifier = void 0;
11
+ exports.isNull = exports.literal = exports.ifStmt = exports.fn = exports.not = exports.unary = exports.literalMap = exports.literalArr = exports.typeofExpr = exports.expressionType = exports.importType = exports.importExpr = exports.variable = exports.jsDocComment = exports.leadingComment = exports.IfStmt = exports.ReturnStatement = exports.ExpressionStatement = exports.DeclareFunctionStmt = exports.DeclareVarStmt = exports.Statement = exports.JSDocComment = void 0;
12
12
  //// Types
13
13
  var TypeModifier;
14
14
  (function (TypeModifier) {
15
- TypeModifier[TypeModifier["Const"] = 0] = "Const";
15
+ TypeModifier[TypeModifier["None"] = 0] = "None";
16
+ TypeModifier[TypeModifier["Const"] = 1] = "Const";
16
17
  })(TypeModifier = exports.TypeModifier || (exports.TypeModifier = {}));
17
18
  class Type {
18
- constructor(modifiers = []) {
19
+ constructor(modifiers = TypeModifier.None) {
19
20
  this.modifiers = modifiers;
20
21
  }
21
22
  hasModifier(modifier) {
22
- return this.modifiers.indexOf(modifier) !== -1;
23
+ return (this.modifiers & modifier) !== 0;
23
24
  }
24
25
  }
25
26
  exports.Type = Type;
@@ -140,8 +141,8 @@ class Expression {
140
141
  prop(name, sourceSpan) {
141
142
  return new ReadPropExpr(this, name, null, sourceSpan);
142
143
  }
143
- callMethod(name, params, sourceSpan) {
144
- return new InvokeMethodExpr(this, name, params, null, sourceSpan);
144
+ key(index, type, sourceSpan) {
145
+ return new ReadKeyExpr(this, index, type, sourceSpan);
145
146
  }
146
147
  callFn(params, sourceSpan, pure) {
147
148
  return new InvokeFunctionExpr(this, params, null, sourceSpan, pure);
@@ -151,29 +152,13 @@ class Expression {
151
152
  }
152
153
  }
153
154
  exports.Expression = Expression;
154
- var BuiltinVar;
155
- (function (BuiltinVar) {
156
- BuiltinVar[BuiltinVar["This"] = 0] = "This";
157
- BuiltinVar[BuiltinVar["Super"] = 1] = "Super";
158
- BuiltinVar[BuiltinVar["CatchError"] = 2] = "CatchError";
159
- BuiltinVar[BuiltinVar["CatchStack"] = 3] = "CatchStack";
160
- })(BuiltinVar = exports.BuiltinVar || (exports.BuiltinVar = {}));
161
155
  class ReadVarExpr extends Expression {
162
156
  constructor(name, type, sourceSpan) {
163
157
  super(type, sourceSpan);
164
- if (typeof name === 'string') {
165
- this.name = name;
166
- this.builtin = null;
167
- }
168
- else {
169
- this.name = null;
170
- this.builtin = name;
171
- }
158
+ this.name = name;
172
159
  }
173
160
  isEquivalent(e) {
174
- return (e instanceof ReadVarExpr &&
175
- this.name === e.name &&
176
- this.builtin === e.builtin);
161
+ return e instanceof ReadVarExpr && this.name === e.name;
177
162
  }
178
163
  isConstant() {
179
164
  return false;
@@ -182,9 +167,6 @@ class ReadVarExpr extends Expression {
182
167
  return visitor.visitReadVarExpr(this, context);
183
168
  }
184
169
  set(value) {
185
- if (!this.name) {
186
- throw new Error(`Built in variable ${this.builtin} can not be assigned to.`);
187
- }
188
170
  return new WriteVarExpr(this.name, value, null, this.sourceSpan);
189
171
  }
190
172
  }
@@ -242,7 +224,7 @@ class WriteVarExpr extends Expression {
242
224
  return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);
243
225
  }
244
226
  toConstDecl() {
245
- return this.toDeclStmt(exports.INFERRED_TYPE, [StmtModifier.Final]);
227
+ return this.toDeclStmt(exports.INFERRED_TYPE, StmtModifier.Final);
246
228
  }
247
229
  }
248
230
  exports.WriteVarExpr = WriteVarExpr;
@@ -288,41 +270,6 @@ class WritePropExpr extends Expression {
288
270
  }
289
271
  }
290
272
  exports.WritePropExpr = WritePropExpr;
291
- var BuiltinMethod;
292
- (function (BuiltinMethod) {
293
- BuiltinMethod[BuiltinMethod["ConcatArray"] = 0] = "ConcatArray";
294
- BuiltinMethod[BuiltinMethod["SubscribeObservable"] = 1] = "SubscribeObservable";
295
- BuiltinMethod[BuiltinMethod["Bind"] = 2] = "Bind";
296
- })(BuiltinMethod = exports.BuiltinMethod || (exports.BuiltinMethod = {}));
297
- class InvokeMethodExpr extends Expression {
298
- constructor(receiver, method, args, type, sourceSpan) {
299
- super(type, sourceSpan);
300
- this.receiver = receiver;
301
- this.args = args;
302
- if (typeof method === 'string') {
303
- this.name = method;
304
- this.builtin = null;
305
- }
306
- else {
307
- this.name = null;
308
- this.builtin = method;
309
- }
310
- }
311
- isEquivalent(e) {
312
- return (e instanceof InvokeMethodExpr &&
313
- this.receiver.isEquivalent(e.receiver) &&
314
- this.name === e.name &&
315
- this.builtin === e.builtin &&
316
- areAllEquivalent(this.args, e.args));
317
- }
318
- isConstant() {
319
- return false;
320
- }
321
- visitExpression(visitor, context) {
322
- return visitor.visitInvokeMethodExpr(this, context);
323
- }
324
- }
325
- exports.InvokeMethodExpr = InvokeMethodExpr;
326
273
  class InvokeFunctionExpr extends Expression {
327
274
  constructor(fn, args, type, sourceSpan, pure = false) {
328
275
  super(type, sourceSpan);
@@ -402,23 +349,47 @@ class TemplateLiteralElement {
402
349
  }
403
350
  }
404
351
  exports.TemplateLiteralElement = TemplateLiteralElement;
405
- class MessagePiece {
352
+ class LiteralPiece {
406
353
  constructor(text, sourceSpan) {
407
354
  this.text = text;
408
355
  this.sourceSpan = sourceSpan;
409
356
  }
410
357
  }
411
- exports.MessagePiece = MessagePiece;
412
- class LiteralPiece extends MessagePiece {
413
- }
414
358
  exports.LiteralPiece = LiteralPiece;
415
- class PlaceholderPiece extends MessagePiece {
416
- }
417
- exports.PlaceholderPiece = PlaceholderPiece;
418
359
  const escapeSlashes = (str) => str.replace(/\\/g, '\\\\');
419
360
  const escapeStartingColon = (str) => str.replace(/^:/, '\\:');
420
361
  const escapeColons = (str) => str.replace(/:/g, '\\:');
421
362
  const escapeForTemplateLiteral = (str) => str.replace(/`/g, '\\`').replace(/\${/g, '$\\{');
363
+ /**
364
+ * Creates a `{cooked, raw}` object from the `metaBlock` and `messagePart`.
365
+ *
366
+ * The `raw` text must have various character sequences escaped:
367
+ * * "\" would otherwise indicate that the next character is a control character.
368
+ * * "`" and "${" are template string control sequences that would otherwise prematurely indicate
369
+ * the end of a message part.
370
+ * * ":" inside a metablock would prematurely indicate the end of the metablock.
371
+ * * ":" at the start of a messagePart with no metablock would erroneously indicate the start of a
372
+ * metablock.
373
+ *
374
+ * @param metaBlock Any metadata that should be prepended to the string
375
+ * @param messagePart The message part of the string
376
+ */
377
+ function createCookedRawString(metaBlock, messagePart, range) {
378
+ if (metaBlock === '') {
379
+ return {
380
+ cooked: messagePart,
381
+ raw: escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),
382
+ range,
383
+ };
384
+ }
385
+ else {
386
+ return {
387
+ cooked: `:${metaBlock}:${messagePart}`,
388
+ raw: escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),
389
+ range,
390
+ };
391
+ }
392
+ }
422
393
  class ExternalExpr extends Expression {
423
394
  constructor(value, type, typeParams = null, sourceSpan) {
424
395
  super(type, sourceSpan);
@@ -484,38 +455,6 @@ class NotExpr extends Expression {
484
455
  }
485
456
  }
486
457
  exports.NotExpr = NotExpr;
487
- class AssertNotNull extends Expression {
488
- constructor(condition, sourceSpan) {
489
- super(condition.type, sourceSpan);
490
- this.condition = condition;
491
- }
492
- isEquivalent(e) {
493
- return (e instanceof AssertNotNull && this.condition.isEquivalent(e.condition));
494
- }
495
- isConstant() {
496
- return false;
497
- }
498
- visitExpression(visitor, context) {
499
- return visitor.visitAssertNotNullExpr(this, context);
500
- }
501
- }
502
- exports.AssertNotNull = AssertNotNull;
503
- class CastExpr extends Expression {
504
- constructor(value, type, sourceSpan) {
505
- super(type, sourceSpan);
506
- this.value = value;
507
- }
508
- isEquivalent(e) {
509
- return e instanceof CastExpr && this.value.isEquivalent(e.value);
510
- }
511
- isConstant() {
512
- return false;
513
- }
514
- visitExpression(visitor, context) {
515
- return visitor.visitCastExpr(this, context);
516
- }
517
- }
518
- exports.CastExpr = CastExpr;
519
458
  class FnParam {
520
459
  constructor(name, type = null) {
521
460
  this.name = name;
@@ -698,19 +637,16 @@ class CommaExpr extends Expression {
698
637
  }
699
638
  }
700
639
  exports.CommaExpr = CommaExpr;
701
- exports.THIS_EXPR = new ReadVarExpr(BuiltinVar.This, null, null);
702
- exports.SUPER_EXPR = new ReadVarExpr(BuiltinVar.Super, null, null);
703
- exports.CATCH_ERROR_VAR = new ReadVarExpr(BuiltinVar.CatchError, null, null);
704
- exports.CATCH_STACK_VAR = new ReadVarExpr(BuiltinVar.CatchStack, null, null);
705
640
  exports.NULL_EXPR = new LiteralExpr(null, null, null);
706
641
  exports.TYPED_NULL_EXPR = new LiteralExpr(null, exports.INFERRED_TYPE, null);
707
642
  //// Statements
708
643
  var StmtModifier;
709
644
  (function (StmtModifier) {
710
- StmtModifier[StmtModifier["Final"] = 0] = "Final";
711
- StmtModifier[StmtModifier["Private"] = 1] = "Private";
712
- StmtModifier[StmtModifier["Exported"] = 2] = "Exported";
713
- StmtModifier[StmtModifier["Static"] = 3] = "Static";
645
+ StmtModifier[StmtModifier["None"] = 0] = "None";
646
+ StmtModifier[StmtModifier["Final"] = 1] = "Final";
647
+ StmtModifier[StmtModifier["Private"] = 2] = "Private";
648
+ StmtModifier[StmtModifier["Exported"] = 4] = "Exported";
649
+ StmtModifier[StmtModifier["Static"] = 8] = "Static";
714
650
  })(StmtModifier = exports.StmtModifier || (exports.StmtModifier = {}));
715
651
  class LeadingComment {
716
652
  constructor(text, multiline, trailingNewline) {
@@ -734,13 +670,13 @@ class JSDocComment extends LeadingComment {
734
670
  }
735
671
  exports.JSDocComment = JSDocComment;
736
672
  class Statement {
737
- constructor(modifiers = [], sourceSpan = null, leadingComments) {
673
+ constructor(modifiers = StmtModifier.None, sourceSpan = null, leadingComments) {
738
674
  this.modifiers = modifiers;
739
675
  this.sourceSpan = sourceSpan;
740
676
  this.leadingComments = leadingComments;
741
677
  }
742
678
  hasModifier(modifier) {
743
- return this.modifiers.indexOf(modifier) !== -1;
679
+ return (this.modifiers & modifier) !== 0;
744
680
  }
745
681
  addLeadingComment(leadingComment) {
746
682
  var _a;
@@ -788,7 +724,7 @@ class DeclareFunctionStmt extends Statement {
788
724
  exports.DeclareFunctionStmt = DeclareFunctionStmt;
789
725
  class ExpressionStatement extends Statement {
790
726
  constructor(expr, sourceSpan, leadingComments) {
791
- super([], sourceSpan, leadingComments);
727
+ super(StmtModifier.None, sourceSpan, leadingComments);
792
728
  this.expr = expr;
793
729
  }
794
730
  isEquivalent(stmt) {
@@ -801,7 +737,7 @@ class ExpressionStatement extends Statement {
801
737
  exports.ExpressionStatement = ExpressionStatement;
802
738
  class ReturnStatement extends Statement {
803
739
  constructor(value, sourceSpan = null, leadingComments) {
804
- super([], sourceSpan, leadingComments);
740
+ super(StmtModifier.None, sourceSpan, leadingComments);
805
741
  this.value = value;
806
742
  }
807
743
  isEquivalent(stmt) {
@@ -812,77 +748,9 @@ class ReturnStatement extends Statement {
812
748
  }
813
749
  }
814
750
  exports.ReturnStatement = ReturnStatement;
815
- class AbstractClassPart {
816
- constructor(type = null, modifiers = []) {
817
- this.type = type;
818
- this.modifiers = modifiers;
819
- }
820
- hasModifier(modifier) {
821
- return this.modifiers.indexOf(modifier) !== -1;
822
- }
823
- }
824
- exports.AbstractClassPart = AbstractClassPart;
825
- class ClassField extends AbstractClassPart {
826
- constructor(name, type, modifiers, initializer) {
827
- super(type, modifiers);
828
- this.name = name;
829
- this.initializer = initializer;
830
- }
831
- isEquivalent(f) {
832
- return this.name === f.name;
833
- }
834
- }
835
- exports.ClassField = ClassField;
836
- class ClassMethod extends AbstractClassPart {
837
- constructor(name, params, body, type, modifiers) {
838
- super(type, modifiers);
839
- this.name = name;
840
- this.params = params;
841
- this.body = body;
842
- }
843
- isEquivalent(m) {
844
- return this.name === m.name && areAllEquivalent(this.body, m.body);
845
- }
846
- }
847
- exports.ClassMethod = ClassMethod;
848
- class ClassGetter extends AbstractClassPart {
849
- constructor(name, body, type, modifiers) {
850
- super(type, modifiers);
851
- this.name = name;
852
- this.body = body;
853
- }
854
- isEquivalent(m) {
855
- return this.name === m.name && areAllEquivalent(this.body, m.body);
856
- }
857
- }
858
- exports.ClassGetter = ClassGetter;
859
- class ClassStmt extends Statement {
860
- constructor(name, parent, fields, getters, constructorMethod, methods, modifiers, sourceSpan, leadingComments) {
861
- super(modifiers, sourceSpan, leadingComments);
862
- this.name = name;
863
- this.parent = parent;
864
- this.fields = fields;
865
- this.getters = getters;
866
- this.constructorMethod = constructorMethod;
867
- this.methods = methods;
868
- }
869
- isEquivalent(stmt) {
870
- return (stmt instanceof ClassStmt &&
871
- this.name === stmt.name &&
872
- nullSafeIsEquivalent(this.parent, stmt.parent) &&
873
- areAllEquivalent(this.fields, stmt.fields) &&
874
- areAllEquivalent(this.getters, stmt.getters) &&
875
- this.constructorMethod.isEquivalent(stmt.constructorMethod) &&
876
- areAllEquivalent(this.methods, stmt.methods));
877
- }
878
- visitStatement(visitor, context) {
879
- return visitor.visitDeclareClassStmt(this, context);
880
- }
881
- }
882
- exports.ClassStmt = ClassStmt;
883
751
  class IfStmt extends Statement {
884
752
  constructor(condition, trueCase, falseCase = [], sourceSpan, leadingComments) {
885
- super([], sourceSpan, leadingComments);
753
+ super(StmtModifier.None, sourceSpan, leadingComments);
886
754
  this.condition = condition;
887
755
  this.trueCase = trueCase;
888
756
  this.falseCase = falseCase;
@@ -898,6 +766,14 @@ class IfStmt extends Statement {
898
766
  }
899
767
  }
900
768
  exports.IfStmt = IfStmt;
769
+ function leadingComment(text, multiline = false, trailingNewline = true) {
770
+ return new LeadingComment(text, multiline, trailingNewline);
771
+ }
772
+ exports.leadingComment = leadingComment;
773
+ function jsDocComment(tags = []) {
774
+ return new JSDocComment(tags);
775
+ }
776
+ exports.jsDocComment = jsDocComment;
901
777
  function variable(name, type, sourceSpan) {
902
778
  return new ReadVarExpr(name, type, sourceSpan);
903
779
  }
@@ -906,6 +782,12 @@ function importExpr(id, typeParams = null, sourceSpan) {
906
782
  return new ExternalExpr(id, null, typeParams, sourceSpan);
907
783
  }
908
784
  exports.importExpr = importExpr;
785
+ function importType(id, typeParams, typeModifiers) {
786
+ return id != null
787
+ ? expressionType(importExpr(id, typeParams, null), typeModifiers)
788
+ : null;
789
+ }
790
+ exports.importType = importType;
909
791
  function expressionType(expr, typeModifiers, typeParams) {
910
792
  return new ExpressionType(expr, typeModifiers, typeParams);
911
793
  }
@@ -930,10 +812,6 @@ function not(expr, sourceSpan) {
930
812
  return new NotExpr(expr, sourceSpan);
931
813
  }
932
814
  exports.not = not;
933
- function assertNotNull(expr, sourceSpan) {
934
- return new AssertNotNull(expr, sourceSpan);
935
- }
936
- exports.assertNotNull = assertNotNull;
937
815
  function fn(params, body, type, sourceSpan, name) {
938
816
  return new FunctionExpr(params, body, type, sourceSpan, name);
939
817
  }
@@ -17,7 +17,7 @@ export interface R3PartialDeclaration {
17
17
  */
18
18
  version: string;
19
19
  /**
20
- * A reference to the `static-injector` ES module, which allows access
20
+ * A reference to the `@angular/core` ES module, which allows access
21
21
  * to all Angular exports, including Ivy instructions.
22
22
  */
23
23
  ngImport: o.Expression;
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.FactoryTarget = void 0;
4
11
  var FactoryTarget;
@@ -1,11 +1,4 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as outputAst from '../output/output_ast';
1
+ import * as o from '../output/output_ast';
9
2
  import { R3CompiledExpression, R3Reference } from './util';
10
3
  /**
11
4
  * Metadata required by the factory generator to generate a `factory` function for a type.
@@ -26,7 +19,7 @@ export interface R3ConstructorFactoryMetadata {
26
19
  * This can differ from the outer `type` if the class is being compiled by ngcc and is inside
27
20
  * an IIFE structure that uses a different name internally.
28
21
  */
29
- internalType: outputAst.Expression;
22
+ internalType: o.Expression;
30
23
  /** Number of arguments for the `type`. */
31
24
  typeArgumentCount: number;
32
25
  /**
@@ -48,14 +41,14 @@ export declare enum R3FactoryDelegateType {
48
41
  Function = 1
49
42
  }
50
43
  export interface R3DelegatedFnOrClassMetadata extends R3ConstructorFactoryMetadata {
51
- delegate: outputAst.Expression;
44
+ delegate: o.Expression;
52
45
  delegateType: R3FactoryDelegateType;
53
46
  delegateDeps: R3DependencyMetadata[];
54
47
  }
55
48
  export interface R3ExpressionFactoryMetadata extends R3ConstructorFactoryMetadata {
56
- expression: outputAst.Expression;
49
+ expression: o.Expression;
57
50
  }
58
- export declare type R3FactoryMetadata = R3ConstructorFactoryMetadata | R3DelegatedFnOrClassMetadata | R3ExpressionFactoryMetadata;
51
+ export type R3FactoryMetadata = R3ConstructorFactoryMetadata | R3DelegatedFnOrClassMetadata | R3ExpressionFactoryMetadata;
59
52
  export declare enum FactoryTarget {
60
53
  Directive = 0,
61
54
  Component = 1,
@@ -68,13 +61,13 @@ export interface R3DependencyMetadata {
68
61
  * An expression representing the token or value to be injected.
69
62
  * Or `null` if the dependency could not be resolved - making it invalid.
70
63
  */
71
- token: outputAst.Expression | null;
64
+ token: o.Expression | null;
72
65
  /**
73
66
  * If an @Attribute decorator is present, this is the literal type of the attribute name, or
74
67
  * the unknown type if no literal type is available (e.g. the attribute name is an expression).
75
68
  * Otherwise it is null;
76
69
  */
77
- attributeNameType: outputAst.Expression | null;
70
+ attributeNameType: o.Expression | null;
78
71
  /**
79
72
  * Whether the dependency has an @Optional qualifier.
80
73
  */
@@ -92,6 +85,6 @@ export interface R3DependencyMetadata {
92
85
  * Construct a factory function expression for the given `R3FactoryMetadata`.
93
86
  */
94
87
  export declare function compileFactoryFunction(meta: R3FactoryMetadata): R3CompiledExpression;
95
- export declare function createFactoryType(meta: R3FactoryMetadata): outputAst.ExpressionType;
88
+ export declare function createFactoryType(meta: R3FactoryMetadata): o.ExpressionType;
96
89
  export declare function isDelegatedFactoryMetadata(meta: R3FactoryMetadata): meta is R3DelegatedFnOrClassMetadata;
97
90
  export declare function isExpressionFactoryMetadata(meta: R3FactoryMetadata): meta is R3ExpressionFactoryMetadata;