@magic-xpa/cli 4.1300.0-dev4130.228 → 4.1300.0-dev4130.233

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 (30) hide show
  1. package/package.json +1 -1
  2. package/src/schematics/magic-utils/Util.js +2 -1
  3. package/src/schematics/magic-utils/Util.js.map +1 -1
  4. package/src/schematics/magic-utils/env.js +12 -12
  5. package/src/schematics/magic-utils/env.js.map +1 -1
  6. package/src/schematics/magic-utils/env.ts +16 -16
  7. package/src/schematics/magic-utils/rules/build-control.rule.js +3 -2
  8. package/src/schematics/magic-utils/rules/build-control.rule.js.map +1 -1
  9. package/src/schematics/magic-utils/rules/component-list.rule.js +3 -2
  10. package/src/schematics/magic-utils/rules/component-list.rule.js.map +1 -1
  11. package/src/schematics/magic-utils/rules/generate.rule.js +3 -2
  12. package/src/schematics/magic-utils/rules/generate.rule.js.map +1 -1
  13. package/src/schematics/mg-add/files/src/app/magic/magic.gen.lib.module.ts +3 -4
  14. package/src/schematics/mg-add/index.js +2 -1
  15. package/src/schematics/mg-add/index.js.map +1 -1
  16. package/src/schematics/utils/ast.js +2 -1
  17. package/src/schematics/utils/ast.js.map +1 -1
  18. package/src/schematics/utils/devkit-utils/ast-utils.js +2 -1
  19. package/src/schematics/utils/devkit-utils/ast-utils.js.map +1 -1
  20. package/src/schematics/utils/devkit-utils/ast-utils_old.js +2 -1
  21. package/src/schematics/utils/devkit-utils/ast-utils_old.js.map +1 -1
  22. package/src/schematics/utils/devkit-utils/component.js +2 -1
  23. package/src/schematics/utils/devkit-utils/component.js.map +1 -1
  24. package/src/schematics/utils/devkit-utils/ng-ast-utils.js +2 -1
  25. package/src/schematics/utils/devkit-utils/ng-ast-utils.js.map +1 -1
  26. package/src/schematics/utils/devkit-utils/route-utils.js +2 -1
  27. package/src/schematics/utils/devkit-utils/route-utils.js.map +1 -1
  28. package/src/schematics/utils/html.js +2 -1
  29. package/src/schematics/utils/html.js.map +1 -1
  30. package/tsconfig.json +2 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magic-xpa/cli",
3
- "version": "4.1300.0-dev4130.228",
3
+ "version": "4.1300.0-dev4130.233",
4
4
  "license": "SEE LICENSE IN EULA.pdf",
5
5
  "description": "Magic CLI for MagicWeb applications",
6
6
  "keywords": [
@@ -5,7 +5,8 @@ exports.logErr = logErr;
5
5
  exports.LogLn = LogLn;
6
6
  exports.Log = Log;
7
7
  exports.isNullOrUndefined = isNullOrUndefined;
8
- const process = require("process");
8
+ const tslib_1 = require("tslib");
9
+ const process = tslib_1.__importStar(require("process"));
9
10
  const env_1 = require("./env");
10
11
  // @dynamic
11
12
  class Util {
@@ -1 +1 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["Util.ts"],"names":[],"mappings":";;;AAWA,wBAEC;AAED,sBAGC;AAED,kBAGC;AAOD,8CAEC;AAhCD,mCAAmC;AACnC,+BAA4B;AAE5B,WAAW;AACX,MAAa,IAAI;IAChB,MAAM,CAAC,aAAa,CAAC,KAAU,EAAE,GAAQ;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3D,CAAC;CAED;AALD,oBAKC;AAED,SAAgB,MAAM,CAAC,GAAG;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,KAAK,CAAC,GAAG;IACvB,IAAG,CAAC,SAAG,CAAC,WAAW;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;AACrC,CAAC;AAED,SAAgB,GAAG,CAAC,GAAG;IACrB,IAAG,CAAC,SAAG,CAAC,WAAW;QACjB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC","sourcesContent":["import * as process from 'process';\r\nimport { env } from \"./env\";\r\n\r\n// @dynamic\r\nexport class Util {\r\n\tstatic enumNameByVal(enumm: any, val: any) {\r\n\t\treturn Object.keys(enumm).find(key => enumm[key] === val);\r\n\t}\r\n\r\n}\r\n\r\nexport function logErr(err) {\r\n process.stderr.write('ERR' + err + '\\r\\n');\r\n}\r\n\r\nexport function LogLn(msg){\r\n if(!env.prevent_log)\r\n\t process.stdout.write(msg + '\\r\\n')\r\n}\r\n\r\nexport function Log(msg){\r\n if(!env.prevent_log)\r\n return process.stdout.write(msg)\r\n}\r\n\r\n/**\r\n * Checks if the given value is null or undefined.\r\n * @param value The value to check.\r\n * @returns true if the value is null or undefined, false otherwise.\r\n */\r\nexport function isNullOrUndefined(value: any): boolean {\r\n return value === null || value === undefined;\r\n}\r\n"]}
1
+ {"version":3,"file":"Util.js","sourceRoot":"","sources":["Util.ts"],"names":[],"mappings":";;;AAWA,wBAEC;AAED,sBAGC;AAED,kBAGC;AAOD,8CAEC;;AAhCD,yDAAmC;AACnC,+BAA4B;AAE5B,WAAW;AACX,MAAa,IAAI;IAChB,MAAM,CAAC,aAAa,CAAC,KAAU,EAAE,GAAQ;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3D,CAAC;CAED;AALD,oBAKC;AAED,SAAgB,MAAM,CAAC,GAAG;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,KAAK,CAAC,GAAG;IACvB,IAAG,CAAC,SAAG,CAAC,WAAW;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;AACrC,CAAC;AAED,SAAgB,GAAG,CAAC,GAAG;IACrB,IAAG,CAAC,SAAG,CAAC,WAAW;QACjB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC","sourcesContent":["import * as process from 'process';\r\nimport { env } from \"./env\";\r\n\r\n// @dynamic\r\nexport class Util {\r\n\tstatic enumNameByVal(enumm: any, val: any) {\r\n\t\treturn Object.keys(enumm).find(key => enumm[key] === val);\r\n\t}\r\n\r\n}\r\n\r\nexport function logErr(err) {\r\n process.stderr.write('ERR' + err + '\\r\\n');\r\n}\r\n\r\nexport function LogLn(msg){\r\n if(!env.prevent_log)\r\n\t process.stdout.write(msg + '\\r\\n')\r\n}\r\n\r\nexport function Log(msg){\r\n if(!env.prevent_log)\r\n return process.stdout.write(msg)\r\n}\r\n\r\n/**\r\n * Checks if the given value is null or undefined.\r\n * @param value The value to check.\r\n * @returns true if the value is null or undefined, false otherwise.\r\n */\r\nexport function isNullOrUndefined(value: any): boolean {\r\n return value === null || value === undefined;\r\n}\r\n"]}
@@ -18,24 +18,24 @@ class Idependencies {
18
18
  exports.Idependencies = Idependencies;
19
19
  exports.dependencies = [
20
20
  // material dependencies
21
- { name: "@angular/material", version: '^21.1.4' },
22
- { name: "@angular/cdk", version: '^21.1.4' },
23
- { name: "@angular/animations", version: '^21.1.4' },
21
+ { name: "@angular/material", version: "^22.1.1" },
22
+ { name: "@angular/cdk", version: "^22.1.1" },
23
+ { name: "@angular/animations", version: '^22.1.1' },
24
24
  { name: "font-awesome", version: '^4.7.0' },
25
25
  { name: "hammerjs", version: '^2.0.8' },
26
- { name: "ngx-infinite-scroll", version: '^21.0.0' },
27
- { name: "ng-dynamic-component", version: '~10.8.2' },
28
- { name: "@dintecom/ngx-currency", version: "^21.0.1" },
29
- { name: "ngx-mask", version: "^13.1.15" },
26
+ { name: "ngx-infinite-scroll", version: '^22.0.0' },
27
+ { name: "ng-dynamic-component", version: '^11.0.0' },
28
+ { name: "@dintecom/ngx-currency", version: "^22.0.0" },
29
+ { name: "ngx-mask", version: "^22.1.0" },
30
30
  { name: "crypto-js", version: "^4.2.0" },
31
- { name: "zone.js", version: "^0.15.0" },
31
+ { name: "zone.js", version: "~0.16.0" },
32
32
  // Time masking dependencies (hh:mm, hh:mm:ss, hh:mm:ss:mss)
33
- { name: "@maskito/angular", version: "^1.4.0" },
34
- { name: "@maskito/core", version: "^1.4.0" },
35
- { name: "@maskito/kit", version: "^1.4.0" }
33
+ { name: "@maskito/angular", version: "^5.3.1" },
34
+ { name: "@maskito/core", version: "^5.3.1" },
35
+ { name: "@maskito/kit", version: "^5.3.1" }
36
36
  ];
37
37
  exports.devDependencies = [
38
- { name: "@types/stacktrace-js", version: '^0.0.32' }
38
+ { name: "@types/stacktrace-js", version: "^0.0.33" }
39
39
  ];
40
40
  exports.env = {};
41
41
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["env.ts"],"names":[],"mappings":";;;AAKa,QAAA,YAAY,GAAW,gBAAgB,CAAC;AACxC,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAC5C,QAAA,mBAAmB,GAAI,kBAAkB,CAAC;AAC1C,QAAA,UAAU,GAAa,OAAO,CAAC;AAC/B,QAAA,gBAAgB,GAAO,+BAA+B,CAAC;AACvD,QAAA,2BAA2B,GAAI,oBAAoB,CAAC;AACpD,QAAA,aAAa,GAAI,KAAK,oBAAY,gBAAgB,CAAC;AACnD,QAAA,WAAW,GAAM,KAAK,oBAAY,cAAc,CAAC;AAE9D,MAAa,aAAa;IACxB,YAAY,OAAc,EAAE,UAAiB;QAC3C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;IAC5B,CAAC;CAGF;AAPD,sCAOC;AAEU,QAAA,YAAY,GAAG;IAExB,wBAAwB;IACxB,EAAC,IAAI,EAAE,mBAAmB,EAAI,OAAO,EAAE,SAAS,EAAC;IACjD,EAAC,IAAI,EAAE,cAAc,EAAS,OAAO,EAAE,SAAS,EAAC;IACjD,EAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAAC;IACjD,EAAC,IAAI,EAAE,cAAc,EAAS,OAAO,EAAE,QAAQ,EAAC;IAChD,EAAC,IAAI,EAAE,UAAU,EAAa,OAAO,EAAE,QAAQ,EAAC;IAEhD,EAAC,IAAI,EAAE,qBAAqB,EAAG,OAAO,EAAE,SAAS,EAAC;IAClD,EAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,SAAS,EAAC;IAClD,EAAC,IAAI,EAAE,wBAAwB,EAAG,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,UAAU,EAAc,OAAO,EAAE,UAAU,EAAC;IACnD,EAAC,IAAI,EAAE,WAAW,EAAa,OAAO,EAAE,QAAQ,EAAC;IACjD,EAAC,IAAI,EAAE,SAAS,EAAe,OAAO,EAAE,SAAS,EAAC;IAElD,4DAA4D;IAC5D,EAAC,IAAI,EAAE,kBAAkB,EAAO,OAAO,EAAE,QAAQ,EAAC;IAClD,EAAC,IAAI,EAAE,eAAe,EAAU,OAAO,EAAE,QAAQ,EAAC;IAClD,EAAC,IAAI,EAAE,cAAc,EAAW,OAAO,EAAE,QAAQ,EAAC;CAEnD,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,EAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,SAAS,EAAC;CACnD,CAAC;AACW,QAAA,GAAG,GAAU,EAAS,CAAC","sourcesContent":["// TODO(PK): hard-code for now, will query npm repo\n// to get this info in the future\nimport { MagicMetadata } from \"./metadata.class\";\nimport { IEnv } from \"../../types/interfaces/env.interface\";\n\nexport const METADATA_DIR = `magic-metadata`;\nexport const GEN_COMPONENTS_ARRAY = 'magicGenComponents';\nexport const GEN_COMPONENTS_HASH = 'magicGenCmpsHash';\nexport const GEN_FOLDER = 'magic';\nexport const MAGIC_CLI_FOLDER = './node_modules/@magic-xpa/cli';\nexport const GEN_LAZY_LOAD_MODULES_ARRAY = 'LazyLoadModulesMap';\nexport const manifest_path = `./${METADATA_DIR}/manifest.json`;\nexport const config_path = `./${METADATA_DIR}/config.json`;\n\nexport class Idependencies {\n constructor(setName:string, setVersion:string){\n this.name = setName;\n this.version = setVersion;\n }\n name:string;\n version:string;\n}\n\nexport var dependencies = [\n\n // material dependencies\n {name: \"@angular/material\" , version: '^21.1.4'},\n {name: \"@angular/cdk\" , version: '^21.1.4'},\n {name: \"@angular/animations\", version: '^21.1.4'},\n {name: \"font-awesome\" , version: '^4.7.0'},\n {name: \"hammerjs\" , version: '^2.0.8'},\n\n {name: \"ngx-infinite-scroll\" , version: '^21.0.0'},\n {name: \"ng-dynamic-component\", version: '~10.8.2'},\n {name: \"@dintecom/ngx-currency\" , version: \"^21.0.1\"},\n {name: \"ngx-mask\" , version: \"^13.1.15\"},\n {name: \"crypto-js\" , version: \"^4.2.0\"},\n {name: \"zone.js\" , version: \"^0.15.0\"},\n\n // Time masking dependencies (hh:mm, hh:mm:ss, hh:mm:ss:mss)\n {name: \"@maskito/angular\" , version: \"^1.4.0\"},\n {name: \"@maskito/core\" , version: \"^1.4.0\"},\n {name: \"@maskito/kit\" , version: \"^1.4.0\"}\n\n];\n\nexport const devDependencies = [\n {name: \"@types/stacktrace-js\", version: '^0.0.32'}\n];\nexport const env : IEnv = {} as any;\n\n"]}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["env.ts"],"names":[],"mappings":";;;AAKa,QAAA,YAAY,GAAW,gBAAgB,CAAC;AACxC,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAC5C,QAAA,mBAAmB,GAAI,kBAAkB,CAAC;AAC1C,QAAA,UAAU,GAAa,OAAO,CAAC;AAC/B,QAAA,gBAAgB,GAAO,+BAA+B,CAAC;AACvD,QAAA,2BAA2B,GAAI,oBAAoB,CAAC;AACpD,QAAA,aAAa,GAAI,KAAK,oBAAY,gBAAgB,CAAC;AACnD,QAAA,WAAW,GAAM,KAAK,oBAAY,cAAc,CAAC;AAE9D,MAAa,aAAa;IACxB,YAAY,OAAc,EAAE,UAAiB;QAC3C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;IAC5B,CAAC;CAGF;AAPD,sCAOC;AAEU,QAAA,YAAY,GAAG;IAExB,wBAAwB;IACxB,EAAC,IAAI,EAAE,mBAAmB,EAAQ,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,cAAc,EAAa,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,qBAAqB,EAAM,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,cAAc,EAAa,OAAO,EAAE,QAAQ,EAAC;IACpD,EAAC,IAAI,EAAE,UAAU,EAAiB,OAAO,EAAE,QAAQ,EAAC;IAEpD,EAAC,IAAI,EAAE,qBAAqB,EAAM,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,sBAAsB,EAAK,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,wBAAwB,EAAG,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,UAAU,EAAiB,OAAO,EAAE,SAAS,EAAC;IACrD,EAAC,IAAI,EAAE,WAAW,EAAgB,OAAO,EAAE,QAAQ,EAAC;IACpD,EAAC,IAAI,EAAE,SAAS,EAAkB,OAAO,EAAE,SAAS,EAAC;IAErD,4DAA4D;IAC5D,EAAC,IAAI,EAAE,kBAAkB,EAAS,OAAO,EAAE,QAAQ,EAAC;IACpD,EAAC,IAAI,EAAE,eAAe,EAAY,OAAO,EAAE,QAAQ,EAAC;IACpD,EAAC,IAAI,EAAE,cAAc,EAAa,OAAO,EAAE,QAAQ,EAAC;CAErD,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,EAAC,IAAI,EAAE,sBAAsB,EAAG,OAAO,EAAE,SAAS,EAAC;CACpD,CAAC;AACW,QAAA,GAAG,GAAU,EAAS,CAAC","sourcesContent":["// TODO(PK): hard-code for now, will query npm repo\n// to get this info in the future\nimport { MagicMetadata } from \"./metadata.class\";\nimport { IEnv } from \"../../types/interfaces/env.interface\";\n\nexport const METADATA_DIR = `magic-metadata`;\nexport const GEN_COMPONENTS_ARRAY = 'magicGenComponents';\nexport const GEN_COMPONENTS_HASH = 'magicGenCmpsHash';\nexport const GEN_FOLDER = 'magic';\nexport const MAGIC_CLI_FOLDER = './node_modules/@magic-xpa/cli';\nexport const GEN_LAZY_LOAD_MODULES_ARRAY = 'LazyLoadModulesMap';\nexport const manifest_path = `./${METADATA_DIR}/manifest.json`;\nexport const config_path = `./${METADATA_DIR}/config.json`;\n\nexport class Idependencies {\n constructor(setName:string, setVersion:string){\n this.name = setName;\n this.version = setVersion;\n }\n name:string;\n version:string;\n}\n\nexport var dependencies = [\n\n // material dependencies\n {name: \"@angular/material\" , version: \"^22.1.1\"},\n {name: \"@angular/cdk\" , version: \"^22.1.1\"},\n {name: \"@angular/animations\" , version: '^22.1.1'},\n {name: \"font-awesome\" , version: '^4.7.0'},\n {name: \"hammerjs\" , version: '^2.0.8'},\n\n {name: \"ngx-infinite-scroll\" , version: '^22.0.0'},\n {name: \"ng-dynamic-component\" , version: '^11.0.0'},\n {name: \"@dintecom/ngx-currency\" , version: \"^22.0.0\"},\n {name: \"ngx-mask\" , version: \"^22.1.0\"},\n {name: \"crypto-js\" , version: \"^4.2.0\"},\n {name: \"zone.js\" , version: \"~0.16.0\"},\n\n // Time masking dependencies (hh:mm, hh:mm:ss, hh:mm:ss:mss)\n {name: \"@maskito/angular\" , version: \"^5.3.1\"},\n {name: \"@maskito/core\" , version: \"^5.3.1\"},\n {name: \"@maskito/kit\" , version: \"^5.3.1\"}\n\n];\n\nexport const devDependencies = [\n {name: \"@types/stacktrace-js\" , version: \"^0.0.33\"}\n];\nexport const env : IEnv = {} as any;\n\n"]}
@@ -24,28 +24,28 @@ export class Idependencies {
24
24
  export var dependencies = [
25
25
 
26
26
  // material dependencies
27
- {name: "@angular/material" , version: '^21.1.4'},
28
- {name: "@angular/cdk" , version: '^21.1.4'},
29
- {name: "@angular/animations", version: '^21.1.4'},
30
- {name: "font-awesome" , version: '^4.7.0'},
31
- {name: "hammerjs" , version: '^2.0.8'},
32
-
33
- {name: "ngx-infinite-scroll" , version: '^21.0.0'},
34
- {name: "ng-dynamic-component", version: '~10.8.2'},
35
- {name: "@dintecom/ngx-currency" , version: "^21.0.1"},
36
- {name: "ngx-mask" , version: "^13.1.15"},
37
- {name: "crypto-js" , version: "^4.2.0"},
38
- {name: "zone.js" , version: "^0.15.0"},
27
+ {name: "@angular/material" , version: "^22.1.1"},
28
+ {name: "@angular/cdk" , version: "^22.1.1"},
29
+ {name: "@angular/animations" , version: '^22.1.1'},
30
+ {name: "font-awesome" , version: '^4.7.0'},
31
+ {name: "hammerjs" , version: '^2.0.8'},
32
+
33
+ {name: "ngx-infinite-scroll" , version: '^22.0.0'},
34
+ {name: "ng-dynamic-component" , version: '^11.0.0'},
35
+ {name: "@dintecom/ngx-currency" , version: "^22.0.0"},
36
+ {name: "ngx-mask" , version: "^22.1.0"},
37
+ {name: "crypto-js" , version: "^4.2.0"},
38
+ {name: "zone.js" , version: "~0.16.0"},
39
39
 
40
40
  // Time masking dependencies (hh:mm, hh:mm:ss, hh:mm:ss:mss)
41
- {name: "@maskito/angular" , version: "^1.4.0"},
42
- {name: "@maskito/core" , version: "^1.4.0"},
43
- {name: "@maskito/kit" , version: "^1.4.0"}
41
+ {name: "@maskito/angular" , version: "^5.3.1"},
42
+ {name: "@maskito/core" , version: "^5.3.1"},
43
+ {name: "@maskito/kit" , version: "^5.3.1"}
44
44
 
45
45
  ];
46
46
 
47
47
  export const devDependencies = [
48
- {name: "@types/stacktrace-js", version: '^0.0.32'}
48
+ {name: "@types/stacktrace-js" , version: "^0.0.33"}
49
49
  ];
50
50
  export const env : IEnv = {} as any;
51
51
 
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildControl = buildControl;
4
4
  exports.generate = generate;
5
+ const tslib_1 = require("tslib");
5
6
  const schematics_1 = require("@angular-devkit/schematics");
6
7
  const index_1 = require("../../../types/index");
7
8
  const Util_1 = require("../Util");
8
9
  const env_1 = require("../env");
9
- const EJS = require("ejs");
10
+ const EJS = tslib_1.__importStar(require("ejs"));
10
11
  const Util_2 = require("../Util");
11
- const jsbeautify = require("js-beautify");
12
+ const jsbeautify = tslib_1.__importStar(require("js-beautify"));
12
13
  const generate_rule_1 = require("./generate.rule");
13
14
  const htmlBeautify = jsbeautify.html;
14
15
  //
@@ -1 +1 @@
1
- {"version":3,"file":"build-control.rule.js","sourceRoot":"","sources":["build-control.rule.ts"],"names":[],"mappings":";;AA0BA,oCAuCC;AAKD,4BAmBC;AAxFD,2DAAiF;AACjF,gDAW8B;AAC9B,kCAA+B;AAC/B,gCAA2D;AAC3D,2BAA2B;AAC3B,kCAAsC;AACtC,0CAA0C;AAC1C,mDAAiD;AAEjD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;AAErC,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,SAAgB,YAAY,CAAC,OAAyB,EAAE,WAAkB;IACxE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAC,EAAE;QAC7C,MAAM,QAAQ,GAAG,SAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAM,SAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,KAAK,GAAU,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAO,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChG,MAAM,IAAI,GAAO;YACf,aAAa,EAAO,qBAAa;YACjC,KAAK,EAAe,QAAQ,CAAC,KAAK;YAClC,iBAAiB,EAAG,yBAAiB;YACrC,QAAQ,EAAY,gBAAQ;YAC5B,oBAAoB,EAAE,4BAAoB;YAC1C,aAAa,EAAO,qBAAa;YACjC,eAAe,EAAK,uBAAe;YACnC,UAAU,EAAU,kBAAU;YAC9B,cAAc,EAAM,sBAAc;YAClC,IAAI,EAAgB,WAAI;YACxB,KAAK,EAAe,IAAI;YACxB,IAAI,EAAgB,IAAI;YACxB,GAAG,EAAiB,SAAG,CAAC,GAAG;YAC3B,WAAW,EAAS,QAAQ,CAAC,MAAM;SACpC,CAAC;QACF,MAAM,cAAc,GAAqB;YACvC;gBACE,IAAI,EAAE,0BAAkB,CAAC,IAAI;gBAC7B,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,GAAG,MAAM,iBAAiB;gBAChC,IAAI,EAAE,IAAI;aACX;SACF,CAAC;QACF,cAAc,CAAC,OAAO,CAAE,cAAc,CAAC,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEL,OAAO,IAAA,kBAAK,EAAC,KAAK,CAAC,CAAC,IAAI,EAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAA;AACH,CAAC;AAED,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAE,EACF,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,CAAC;gBACH,MAAM,GAAG,IAAA,8BAAc,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;YACd,CAAC;YACD,yEAAyE;YACzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC","sourcesContent":["import { MagicOptionScheme } from \"./magic-option.scheme\";\r\nimport { chain, Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\r\nimport {\r\n CtrlButtonTypeGui,\r\n GeneratedFileTypes,\r\n MgControlType,\r\n SideType,\r\n StorageAttributeType,\r\n TableWebStyle,\r\n RowEditingTypes,\r\n TemplateConfig,\r\n WindowPosition,\r\n WindowType\r\n} from \"../../../types/index\";\r\nimport { Util } from \"../Util\";\r\nimport { env, GEN_FOLDER, MAGIC_CLI_FOLDER } from \"../env\";\r\nimport * as EJS from 'ejs';\r\nimport { logErr, Log } from \"../Util\";\r\nimport * as jsbeautify from 'js-beautify';\r\nimport { createGenFuncs } from \"./generate.rule\";\r\n\r\nconst htmlBeautify = jsbeautify.html;\r\n\r\n//\r\n// build the HTML of a single control\r\n//\r\nexport function buildControl(options:MagicOptionScheme, module_name:string) : Rule {\r\n return (host:Tree, context: SchematicContext)=>{\r\n const metadata = env.metadata;\r\n const view = env.app.views[0];\r\n let rules:Rule[] = [];\r\n\r\n const viewId = view.props.id;\r\n const dest = metadata.paths.getDestPathForComponent(module_name, view.props.component_path);\r\n const data = {\r\n MgControlType : MgControlType,\r\n theme : metadata.theme,\r\n CtrlButtonTypeGui : CtrlButtonTypeGui,\r\n SideType : SideType,\r\n StorageAttributeType: StorageAttributeType,\r\n TableWebStyle : TableWebStyle,\r\n RowEditingTypes : RowEditingTypes,\r\n WindowType : WindowType,\r\n WindowPosition : WindowPosition,\r\n Util : Util,\r\n child : view,\r\n ctrl : view,\r\n app : env.app,\r\n magicConfig : metadata.config,\r\n };\r\n const componentFiles: TemplateConfig[] = [\r\n {\r\n type: GeneratedFileTypes.HTML,\r\n template: './templates/themes/control.ejs',\r\n destination: dest,\r\n name: `${viewId}.component.html`,\r\n data: data\r\n },\r\n ];\r\n componentFiles.forEach( templateConfig => {\r\n rules.push(generate(templateConfig, options));\r\n });\r\n\r\n return chain(rules)(host,context);\r\n }\r\n}\r\n\r\n//\r\n// Call EJS to generate HTML and write the result to stdout\r\n//\r\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\r\n return (host:Tree, context: SchematicContext) => {\r\n EJS.renderFile(\r\n `${MAGIC_CLI_FOLDER}/${file.template}`,\r\n file.data,\r\n {},\r\n (err, output) => {\r\n try {\r\n output = createGenFuncs(output, file.type);\r\n }\r\n catch (err) {\r\n logErr(output);\r\n logErr(err);\r\n }\r\n // send the output directly to the stdout, so the calling app will get it\r\n console.log(output);\r\n });\r\n return host;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"build-control.rule.js","sourceRoot":"","sources":["build-control.rule.ts"],"names":[],"mappings":";;AA0BA,oCAuCC;AAKD,4BAmBC;;AAxFD,2DAAiF;AACjF,gDAW8B;AAC9B,kCAA+B;AAC/B,gCAA2D;AAC3D,iDAA2B;AAC3B,kCAAsC;AACtC,gEAA0C;AAC1C,mDAAiD;AAEjD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;AAErC,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,SAAgB,YAAY,CAAC,OAAyB,EAAE,WAAkB;IACxE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAC,EAAE;QAC7C,MAAM,QAAQ,GAAG,SAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAM,SAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,KAAK,GAAU,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAO,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChG,MAAM,IAAI,GAAO;YACf,aAAa,EAAO,qBAAa;YACjC,KAAK,EAAe,QAAQ,CAAC,KAAK;YAClC,iBAAiB,EAAG,yBAAiB;YACrC,QAAQ,EAAY,gBAAQ;YAC5B,oBAAoB,EAAE,4BAAoB;YAC1C,aAAa,EAAO,qBAAa;YACjC,eAAe,EAAK,uBAAe;YACnC,UAAU,EAAU,kBAAU;YAC9B,cAAc,EAAM,sBAAc;YAClC,IAAI,EAAgB,WAAI;YACxB,KAAK,EAAe,IAAI;YACxB,IAAI,EAAgB,IAAI;YACxB,GAAG,EAAiB,SAAG,CAAC,GAAG;YAC3B,WAAW,EAAS,QAAQ,CAAC,MAAM;SACpC,CAAC;QACF,MAAM,cAAc,GAAqB;YACvC;gBACE,IAAI,EAAE,0BAAkB,CAAC,IAAI;gBAC7B,QAAQ,EAAE,gCAAgC;gBAC1C,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,GAAG,MAAM,iBAAiB;gBAChC,IAAI,EAAE,IAAI;aACX;SACF,CAAC;QACF,cAAc,CAAC,OAAO,CAAE,cAAc,CAAC,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEL,OAAO,IAAA,kBAAK,EAAC,KAAK,CAAC,CAAC,IAAI,EAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAA;AACH,CAAC;AAED,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAE,EACF,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,CAAC;gBACH,MAAM,GAAG,IAAA,8BAAc,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;YACd,CAAC;YACD,yEAAyE;YACzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC","sourcesContent":["import { MagicOptionScheme } from \"./magic-option.scheme\";\r\nimport { chain, Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\r\nimport {\r\n CtrlButtonTypeGui,\r\n GeneratedFileTypes,\r\n MgControlType,\r\n SideType,\r\n StorageAttributeType,\r\n TableWebStyle,\r\n RowEditingTypes,\r\n TemplateConfig,\r\n WindowPosition,\r\n WindowType\r\n} from \"../../../types/index\";\r\nimport { Util } from \"../Util\";\r\nimport { env, GEN_FOLDER, MAGIC_CLI_FOLDER } from \"../env\";\r\nimport * as EJS from 'ejs';\r\nimport { logErr, Log } from \"../Util\";\r\nimport * as jsbeautify from 'js-beautify';\r\nimport { createGenFuncs } from \"./generate.rule\";\r\n\r\nconst htmlBeautify = jsbeautify.html;\r\n\r\n//\r\n// build the HTML of a single control\r\n//\r\nexport function buildControl(options:MagicOptionScheme, module_name:string) : Rule {\r\n return (host:Tree, context: SchematicContext)=>{\r\n const metadata = env.metadata;\r\n const view = env.app.views[0];\r\n let rules:Rule[] = [];\r\n\r\n const viewId = view.props.id;\r\n const dest = metadata.paths.getDestPathForComponent(module_name, view.props.component_path);\r\n const data = {\r\n MgControlType : MgControlType,\r\n theme : metadata.theme,\r\n CtrlButtonTypeGui : CtrlButtonTypeGui,\r\n SideType : SideType,\r\n StorageAttributeType: StorageAttributeType,\r\n TableWebStyle : TableWebStyle,\r\n RowEditingTypes : RowEditingTypes,\r\n WindowType : WindowType,\r\n WindowPosition : WindowPosition,\r\n Util : Util,\r\n child : view,\r\n ctrl : view,\r\n app : env.app,\r\n magicConfig : metadata.config,\r\n };\r\n const componentFiles: TemplateConfig[] = [\r\n {\r\n type: GeneratedFileTypes.HTML,\r\n template: './templates/themes/control.ejs',\r\n destination: dest,\r\n name: `${viewId}.component.html`,\r\n data: data\r\n },\r\n ];\r\n componentFiles.forEach( templateConfig => {\r\n rules.push(generate(templateConfig, options));\r\n });\r\n\r\n return chain(rules)(host,context);\r\n }\r\n}\r\n\r\n//\r\n// Call EJS to generate HTML and write the result to stdout\r\n//\r\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\r\n return (host:Tree, context: SchematicContext) => {\r\n EJS.renderFile(\r\n `${MAGIC_CLI_FOLDER}/${file.template}`,\r\n file.data,\r\n {},\r\n (err, output) => {\r\n try {\r\n output = createGenFuncs(output, file.type);\r\n }\r\n catch (err) {\r\n logErr(output);\r\n logErr(err);\r\n }\r\n // send the output directly to the stdout, so the calling app will get it\r\n console.log(output);\r\n });\r\n return host;\r\n }\r\n}\r\n"]}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.componentlistGen = componentlistGen;
4
- const ts = require("typescript");
5
- const EJS = require("ejs");
4
+ const tslib_1 = require("tslib");
5
+ const ts = tslib_1.__importStar(require("typescript"));
6
+ const EJS = tslib_1.__importStar(require("ejs"));
6
7
  const schematics_1 = require("@angular-devkit/schematics");
7
8
  const env_1 = require("../env");
8
9
  const types_1 = require("../../../types");
@@ -1 +1 @@
1
- {"version":3,"file":"component-list.rule.js","sourceRoot":"","sources":["component-list.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\r\nimport * as EJS from \"ejs\";\r\nimport {chain, Rule, SchematicContext, SchematicsException, Tree} from \"@angular-devkit/schematics\";\r\nimport {env, GEN_COMPONENTS_ARRAY, GEN_COMPONENTS_HASH, GEN_LAZY_LOAD_MODULES_ARRAY} from \"../env\";\r\nimport {MagicOptionScheme} from \"./magic-option.scheme\";\r\nimport {GeneratedFileTypes, TemplateConfig, View, WindowType} from \"../../../types\";\r\nimport {generate} from \"./generate.rule\";\r\nimport {getSourceFile} from \"../../utils/ast\";\r\nimport {insertImport, insertImport2} from \"../../utils/devkit-utils/route-utils\";\r\nimport {InsertChange} from \"../../utils/devkit-utils/change\";\r\nimport {findNodes} from \"../../utils/devkit-utils/ast-utils\";\r\nimport {LogLn, isNullOrUndefined} from \"../Util\";\r\n\r\n\r\nlet existCmpListSet: Set<string>;\r\nlet newCmpListSet = new Set();\r\nlet toAddImports: boolean = true;\r\nlet orgPreventLog = env.prevent_log;\r\n\r\n\r\nexport function componentlistGen(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n LogLn(`[>] Step 4: components-list.`);\r\n return chain([\r\n addNewCmpsToCmpListOrGenAll(options, module_name),\r\n addCmpsImportsToCmpList(options, module_name),\r\n createLazyModuleMap(options, module_name),\r\n addLazyLoadComponentList(options, module_name, loadOnDemand),\r\n addLazyModuleToMagicGen(options),\r\n addImportForLazyModule(options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n// create the lazy load map if it does not exist\r\nfunction createLazyModuleMap(options: MagicOptionScheme, module_name: string) {\r\n return (host: Tree, context: SchematicContext) => {\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n env.prevent_log = false;\r\n const source = host.read(cmpListPath).toString(\"utf-8\")\r\n\r\n const LazyModuleArrayStart = 'export const ' + GEN_LAZY_LOAD_MODULES_ARRAY + ' = {';\r\n const LazyMOduleArrayEnd = '};';\r\n // create lazy load component array if it does not exist\r\n if (source.indexOf(LazyModuleArrayStart) < 0) {\r\n LogLn(`[>] Creating LazyLoadModulesMap `);\r\n // add the code of creating map in file\r\n host.overwrite(cmpListPath, source + \"\\r\\n\" + LazyModuleArrayStart + LazyMOduleArrayEnd);\r\n }\r\n\r\n }\r\n}\r\n\r\n// add the lazy load components\r\nfunction addLazyLoadComponentList(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (loadOnDemand) {\r\n let lazyLoadedComponents: Array<View> = new Array<View>();\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getLazyLoadCompoenentsInfo(cmpListSource, GEN_LAZY_LOAD_MODULES_ARRAY);\r\n let sourceStep1 = host.read(cmpListPath).toString(\"utf-8\");\r\n\r\n env.app.views.forEach(view => {\r\n if( isNullOrUndefined(cmpListTs.components) || !(cmpListTs.components.includes(view.props.component_uniquename))) {\r\n lazyLoadedComponents.push(view); // if component does not exist add it to list\r\n LogLn(`[>] Add ${view.props.component_uniquename} component to LazyLoadModulesMap`, );\r\n }\r\n });\r\n\r\n // add components to map\r\n if (lazyLoadedComponents.length > 0) {\r\n let sourceStep2 = addComponentsToLazyLoad(sourceStep1, cmpListTs, lazyLoadedComponents, module_name);\r\n host.overwrite(cmpListPath, sourceStep2);\r\n }\r\n }\r\n env.prevent_log = orgPreventLog;\r\n }\r\n return host;\r\n }\r\n}\r\n\r\nfunction addImportForLazyModule(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let genLibPath= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n const recorder = tree.beginUpdate(genLibPath);\r\n let genLibSource = getSourceFile(tree, genLibPath);\r\n\r\n const importChange = insertImport(genLibSource, genLibPath, GEN_LAZY_LOAD_MODULES_ARRAY, './component-list.g') as InsertChange;\r\n if (importChange.toAdd) {\r\n recorder.insertLeft(importChange.pos, importChange.toAdd);\r\n }\r\n tree.commitUpdate(recorder);\r\n }\r\n}\r\n\r\n// add the lazy load module to magic.gen.lib\r\nfunction addLazyModuleToMagicGen(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let origModuleFileName= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n if(!tree.exists(origModuleFileName)){\r\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! : ${origModuleFileName}`);\r\n }\r\n const text = tree.read(origModuleFileName);\r\n\r\n if (text === null) {\r\n throw new SchematicsException(`File ${origModuleFileName} does not exist.`);\r\n }\r\n let sourceText = text.toString('utf-8');\r\n const lazyModuleStatement = '\\r\\n componentList.lazyLoadModulesMap = '+ GEN_LAZY_LOAD_MODULES_ARRAY+';';\r\n if (sourceText !== \"\" && sourceText.indexOf(lazyModuleStatement)== -1) {\r\n let genLibSource = getSourceFile(tree, origModuleFileName);\r\n let newLazyModuleText: string = sourceText.replace(lazyModuleStatement, '').trim();\r\n const constNode: ts.FunctionLikeDeclarationBase = findNodes(genLibSource, ts.SyntaxKind.Constructor)[0] as ts.FunctionLikeDeclarationBase;\r\n\r\n let lastStatementEnd = (<ts.Block>constNode.body).statements.end;\r\n\r\n const prefix = sourceText.substring(0, lastStatementEnd);\r\n const suffix = sourceText.substring(lastStatementEnd );\r\n tree.overwrite(origModuleFileName, `${prefix} ${lazyModuleStatement} ${suffix}` );\r\n\r\n }\r\n return tree;\r\n }\r\n}\r\n\r\n/*\r\n* Add new component to component-list.g file (Array and Hash).\r\n* If the file not exist new file will create by componentListGenIfNotExist function.\r\n* */\r\nfunction addNewCmpsToCmpListOrGenAll(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n const metadata = env.metadata;\r\n const cmpsToGen = env.app.views;\r\n const cmpListPath = env.metadata.paths.componentListPath(module_name);\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpToGenNum = 0;\r\n let sourceStep1 = source.toString(\"utf-8\");\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getComponentsArrayInfo(cmpListSource, GEN_COMPONENTS_ARRAY);\r\n existCmpListSet = new Set(cmpListTs.components);\r\n newCmpListSet = new Set<string>();\r\n\r\n // merge between components in the file and new component to gen\r\n cmpsToGen.forEach(newCmpGen => {\r\n if (!existCmpListSet.has(newCmpGen.props.component_uniquename)) {\r\n newCmpListSet.add(newCmpGen.props.component_uniquename);\r\n }\r\n });\r\n const newCmpListArray: string[] = <string[]>Array.from(newCmpListSet);\r\n if (newCmpListArray && newCmpListArray.length > 0) {\r\n let sourceStep2 = addComponentsToArray(sourceStep1, cmpListTs, newCmpListArray);\r\n\r\n let cmpListHashTs = getComponentsHashInfo(cmpListSource, GEN_COMPONENTS_HASH);\r\n let sourceStep3 = addComponentsToHash(sourceStep2, cmpListHashTs, newCmpListArray);\r\n\r\n LogLn(` Total old components: ${existCmpListSet.size}, added components: ${newCmpListSet.size}. `);\r\n\r\n host.overwrite(cmpListPath, sourceStep3);\r\n }\r\n } else {\r\n // If component-list.g.ts doesn't exist.\r\n toAddImports = false; // We generate the entire file with imports.\r\n return componentListGenIfNotExist(options)(host, context);\r\n }\r\n\r\n return host;\r\n }\r\n}\r\n\r\n/*\r\n* Create new component-list.g file.\r\n* */\r\nfunction componentListGenIfNotExist(options: MagicOptionScheme): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n\r\n console.log(\"creating component-list\");\r\n const metadata = env.metadata;\r\n const cmpList = new Set<string>();\r\n const data: any = {\r\n app: env.app,\r\n cmpList: env.app.views\r\n };\r\n\r\n const componentFile: TemplateConfig = {\r\n template: `./templates/angular/src/app/component-list.g.ts`,\r\n name: 'component-list.g.ts',\r\n destination: metadata.paths.magicGenFolderPath,\r\n type: GeneratedFileTypes.TS,\r\n data: data\r\n };\r\n\r\n return chain([\r\n generate(componentFile, options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n/*\r\n* Add new imports to component-list.g file.\r\n* */\r\nfunction addCmpsImportsToCmpList(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (toAddImports) {\r\n const cmpsToGen = env.app.views;\r\n let cmpListSource = getSourceFile(host, env.metadata.paths.componentListPath(module_name));\r\n\r\n const recorder = host.beginUpdate(env.metadata.paths.componentListPath(module_name));\r\n\r\n cmpsToGen.forEach(cmp => {\r\n let name = cmp.props.id;\r\n let uniqueName = cmp.props.component_uniquename;\r\n let cmpPath = cmp.props.component_path;\r\n\r\n if (newCmpListSet.has(uniqueName)) {\r\n const importsChange =\r\n insertImport2(\r\n cmpListSource,\r\n env.metadata.paths.componentListPath(module_name),\r\n name,\r\n uniqueName,\r\n `./${cmpPath}${name}.component`\r\n ) as InsertChange;\r\n\r\n if (importsChange.toAdd) {\r\n recorder.insertLeft(importsChange.pos, importsChange.toAdd);\r\n }\r\n }\r\n });\r\n\r\n host.commitUpdate(recorder);\r\n }\r\n return host;\r\n }\r\n}\r\n\r\n\r\n// //-------------------------------------------------------------------------------------------------\r\n// //\r\n// //-------------------------------------------------------------------------------------------------\r\n// function checkIfTheComponentNeedToBeRemoveFromGeneralMagicModule\r\n// (options: MagicOptionScheme, modulePath:string, moduleName:string, srcModuleName:string) : Rule {\r\n// return (tree: Tree , context : SchematicContext)=>{\r\n// const project = env.project;\r\n//\r\n// if (env.metadata.paths.generateCompForModuleName != \"\") {\r\n// LogLn(` [>] checking component name [${moduleName}]\r\n// from ${srcModuleName}]\r\n// To App Module : [${modulePath}]`);\r\n// const moduleSourceFile = getSourceFile(tree, modulePath);\r\n// if (isImported(moduleSourceFile, moduleName, srcModuleName)) {\r\n//\r\n// }\r\n// }\r\n//\r\n// return tree;\r\n// }\r\n// }\r\n\r\n/**************************\r\n * Helper Functions\r\n ***************************/\r\n\r\ninterface IComponentListParser {\r\n components: string[];\r\n endPos: number;\r\n isEmpty: boolean;\r\n}\r\n\r\nfunction getComponentsHashInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let isEmpty = true;\r\n\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const firstPunctuation: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(firstPunctuation && firstPunctuation.length > 0)) {\r\n throw new Error('magicGenCmpsHash variable has no open bracket ( { )');\r\n }\r\n endPos = firstPunctuation[0].end;\r\n const propertyAssignment = findNodes(firstPunctuation[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n if (propertyAssignment && propertyAssignment.length > 0) {\r\n isEmpty = false;\r\n }\r\n }\r\n return {\r\n components: null,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction getComponentsArrayInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.OpenBracketToken);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('magicGenComponents variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n //endPos = identifiers[identifiers.length - 1].end;\r\n cmpListArray = identifiers.map((i: any) => i.escapedText) as string[];\r\n }\r\n // Array with no items\r\n // else{\r\n // endPos = openBracketToken[0].end;\r\n // }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\n\r\nfunction getLazyLoadCompoenentsInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const cmpListVars: ts.Node[] = findNodes(source, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('FirstPunctuation variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n const identifiers1 = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n cmpListArray = identifiers.map((i: any) => i.name.escapedText ).filter(id => id !== \"moduleName\" && id !== \"modulePath\");\r\n }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction addComponentsToArray(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n let toAdd = `${cmpsToAdd}`;\r\n toAdd = `${toAdd.replace(/,/g, \",\\n\\t\")}`;\r\n\r\n return info.isEmpty ?\r\n`${prefix}\r\n\\t${toAdd} ${suffix}` :\r\n`${prefix}\r\n\\t${toAdd},${suffix}` ;\r\n}\r\n\r\nfunction addComponentsToHash(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n const cmpHashStr = EJS.render(`\r\n <% components.forEach(componentUniqueName => { %>\r\n <%= componentUniqueName %>:<%- componentUniqueName %>,\r\n <%})%>`, {components: cmpsToAdd});\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n /*return info.isEmpty ?\r\n `${prefix} ${delLastComma(cmpHashStr)} ${suffix}` :\r\n `${prefix} ${delLastComma(cmpHashStr)}, ${suffix}` ;*/\r\n}\r\n\r\n// add the lazy loaded components to map\r\nfunction addComponentsToLazyLoad(source: string, info: IComponentListParser, cmpsToAdd: View[], module_name: string): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n\r\n // get the module path\r\n let currentModulePath = env.metadata.paths.magicGenLibModulePath(module_name);\r\n\r\n const cmpHashStr = EJS.render(`\r\n<%{components.forEach(view =>{-%>\r\n<%=view.props.component_uniquename %> : { moduleName : 'Magic<%=moduleName%>Module'},\r\n<%})}-%>`, {components: cmpsToAdd, moduleName: module_name, modulePath: currentModulePath});\r\n\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n}\r\n\r\nfunction delLastComma(source: string) {\r\n let index = source.lastIndexOf(',');\r\n return source.substring(0, index);\r\n}\r\n\r\n\r\n\r\n"]}
1
+ {"version":3,"file":"component-list.rule.js","sourceRoot":"","sources":["component-list.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\r\nimport * as EJS from \"ejs\";\r\nimport {chain, Rule, SchematicContext, SchematicsException, Tree} from \"@angular-devkit/schematics\";\r\nimport {env, GEN_COMPONENTS_ARRAY, GEN_COMPONENTS_HASH, GEN_LAZY_LOAD_MODULES_ARRAY} from \"../env\";\r\nimport {MagicOptionScheme} from \"./magic-option.scheme\";\r\nimport {GeneratedFileTypes, TemplateConfig, View, WindowType} from \"../../../types\";\r\nimport {generate} from \"./generate.rule\";\r\nimport {getSourceFile} from \"../../utils/ast\";\r\nimport {insertImport, insertImport2} from \"../../utils/devkit-utils/route-utils\";\r\nimport {InsertChange} from \"../../utils/devkit-utils/change\";\r\nimport {findNodes} from \"../../utils/devkit-utils/ast-utils\";\r\nimport {LogLn, isNullOrUndefined} from \"../Util\";\r\n\r\n\r\nlet existCmpListSet: Set<string>;\r\nlet newCmpListSet = new Set();\r\nlet toAddImports: boolean = true;\r\nlet orgPreventLog = env.prevent_log;\r\n\r\n\r\nexport function componentlistGen(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n LogLn(`[>] Step 4: components-list.`);\r\n return chain([\r\n addNewCmpsToCmpListOrGenAll(options, module_name),\r\n addCmpsImportsToCmpList(options, module_name),\r\n createLazyModuleMap(options, module_name),\r\n addLazyLoadComponentList(options, module_name, loadOnDemand),\r\n addLazyModuleToMagicGen(options),\r\n addImportForLazyModule(options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n// create the lazy load map if it does not exist\r\nfunction createLazyModuleMap(options: MagicOptionScheme, module_name: string) {\r\n return (host: Tree, context: SchematicContext) => {\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n env.prevent_log = false;\r\n const source = host.read(cmpListPath).toString(\"utf-8\")\r\n\r\n const LazyModuleArrayStart = 'export const ' + GEN_LAZY_LOAD_MODULES_ARRAY + ' = {';\r\n const LazyMOduleArrayEnd = '};';\r\n // create lazy load component array if it does not exist\r\n if (source.indexOf(LazyModuleArrayStart) < 0) {\r\n LogLn(`[>] Creating LazyLoadModulesMap `);\r\n // add the code of creating map in file\r\n host.overwrite(cmpListPath, source + \"\\r\\n\" + LazyModuleArrayStart + LazyMOduleArrayEnd);\r\n }\r\n\r\n }\r\n}\r\n\r\n// add the lazy load components\r\nfunction addLazyLoadComponentList(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (loadOnDemand) {\r\n let lazyLoadedComponents: Array<View> = new Array<View>();\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getLazyLoadCompoenentsInfo(cmpListSource, GEN_LAZY_LOAD_MODULES_ARRAY);\r\n let sourceStep1 = host.read(cmpListPath).toString(\"utf-8\");\r\n\r\n env.app.views.forEach(view => {\r\n if( isNullOrUndefined(cmpListTs.components) || !(cmpListTs.components.includes(view.props.component_uniquename))) {\r\n lazyLoadedComponents.push(view); // if component does not exist add it to list\r\n LogLn(`[>] Add ${view.props.component_uniquename} component to LazyLoadModulesMap`, );\r\n }\r\n });\r\n\r\n // add components to map\r\n if (lazyLoadedComponents.length > 0) {\r\n let sourceStep2 = addComponentsToLazyLoad(sourceStep1, cmpListTs, lazyLoadedComponents, module_name);\r\n host.overwrite(cmpListPath, sourceStep2);\r\n }\r\n }\r\n env.prevent_log = orgPreventLog;\r\n }\r\n return host;\r\n }\r\n}\r\n\r\nfunction addImportForLazyModule(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let genLibPath= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n const recorder = tree.beginUpdate(genLibPath);\r\n let genLibSource = getSourceFile(tree, genLibPath);\r\n\r\n const importChange = insertImport(genLibSource, genLibPath, GEN_LAZY_LOAD_MODULES_ARRAY, './component-list.g') as InsertChange;\r\n if (importChange.toAdd) {\r\n recorder.insertLeft(importChange.pos, importChange.toAdd);\r\n }\r\n tree.commitUpdate(recorder);\r\n }\r\n}\r\n\r\n// add the lazy load module to magic.gen.lib\r\nfunction addLazyModuleToMagicGen(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let origModuleFileName= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n if(!tree.exists(origModuleFileName)){\r\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! : ${origModuleFileName}`);\r\n }\r\n const text = tree.read(origModuleFileName);\r\n\r\n if (text === null) {\r\n throw new SchematicsException(`File ${origModuleFileName} does not exist.`);\r\n }\r\n let sourceText = text.toString('utf-8');\r\n const lazyModuleStatement = '\\r\\n componentList.lazyLoadModulesMap = '+ GEN_LAZY_LOAD_MODULES_ARRAY+';';\r\n if (sourceText !== \"\" && sourceText.indexOf(lazyModuleStatement)== -1) {\r\n let genLibSource = getSourceFile(tree, origModuleFileName);\r\n let newLazyModuleText: string = sourceText.replace(lazyModuleStatement, '').trim();\r\n const constNode: ts.FunctionLikeDeclarationBase = findNodes(genLibSource, ts.SyntaxKind.Constructor)[0] as ts.FunctionLikeDeclarationBase;\r\n\r\n let lastStatementEnd = (<ts.Block>constNode.body).statements.end;\r\n\r\n const prefix = sourceText.substring(0, lastStatementEnd);\r\n const suffix = sourceText.substring(lastStatementEnd );\r\n tree.overwrite(origModuleFileName, `${prefix} ${lazyModuleStatement} ${suffix}` );\r\n\r\n }\r\n return tree;\r\n }\r\n}\r\n\r\n/*\r\n* Add new component to component-list.g file (Array and Hash).\r\n* If the file not exist new file will create by componentListGenIfNotExist function.\r\n* */\r\nfunction addNewCmpsToCmpListOrGenAll(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n const metadata = env.metadata;\r\n const cmpsToGen = env.app.views;\r\n const cmpListPath = env.metadata.paths.componentListPath(module_name);\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpToGenNum = 0;\r\n let sourceStep1 = source.toString(\"utf-8\");\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getComponentsArrayInfo(cmpListSource, GEN_COMPONENTS_ARRAY);\r\n existCmpListSet = new Set(cmpListTs.components);\r\n newCmpListSet = new Set<string>();\r\n\r\n // merge between components in the file and new component to gen\r\n cmpsToGen.forEach(newCmpGen => {\r\n if (!existCmpListSet.has(newCmpGen.props.component_uniquename)) {\r\n newCmpListSet.add(newCmpGen.props.component_uniquename);\r\n }\r\n });\r\n const newCmpListArray: string[] = <string[]>Array.from(newCmpListSet);\r\n if (newCmpListArray && newCmpListArray.length > 0) {\r\n let sourceStep2 = addComponentsToArray(sourceStep1, cmpListTs, newCmpListArray);\r\n\r\n let cmpListHashTs = getComponentsHashInfo(cmpListSource, GEN_COMPONENTS_HASH);\r\n let sourceStep3 = addComponentsToHash(sourceStep2, cmpListHashTs, newCmpListArray);\r\n\r\n LogLn(` Total old components: ${existCmpListSet.size}, added components: ${newCmpListSet.size}. `);\r\n\r\n host.overwrite(cmpListPath, sourceStep3);\r\n }\r\n } else {\r\n // If component-list.g.ts doesn't exist.\r\n toAddImports = false; // We generate the entire file with imports.\r\n return componentListGenIfNotExist(options)(host, context);\r\n }\r\n\r\n return host;\r\n }\r\n}\r\n\r\n/*\r\n* Create new component-list.g file.\r\n* */\r\nfunction componentListGenIfNotExist(options: MagicOptionScheme): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n\r\n console.log(\"creating component-list\");\r\n const metadata = env.metadata;\r\n const cmpList = new Set<string>();\r\n const data: any = {\r\n app: env.app,\r\n cmpList: env.app.views\r\n };\r\n\r\n const componentFile: TemplateConfig = {\r\n template: `./templates/angular/src/app/component-list.g.ts`,\r\n name: 'component-list.g.ts',\r\n destination: metadata.paths.magicGenFolderPath,\r\n type: GeneratedFileTypes.TS,\r\n data: data\r\n };\r\n\r\n return chain([\r\n generate(componentFile, options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n/*\r\n* Add new imports to component-list.g file.\r\n* */\r\nfunction addCmpsImportsToCmpList(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (toAddImports) {\r\n const cmpsToGen = env.app.views;\r\n let cmpListSource = getSourceFile(host, env.metadata.paths.componentListPath(module_name));\r\n\r\n const recorder = host.beginUpdate(env.metadata.paths.componentListPath(module_name));\r\n\r\n cmpsToGen.forEach(cmp => {\r\n let name = cmp.props.id;\r\n let uniqueName = cmp.props.component_uniquename;\r\n let cmpPath = cmp.props.component_path;\r\n\r\n if (newCmpListSet.has(uniqueName)) {\r\n const importsChange =\r\n insertImport2(\r\n cmpListSource,\r\n env.metadata.paths.componentListPath(module_name),\r\n name,\r\n uniqueName,\r\n `./${cmpPath}${name}.component`\r\n ) as InsertChange;\r\n\r\n if (importsChange.toAdd) {\r\n recorder.insertLeft(importsChange.pos, importsChange.toAdd);\r\n }\r\n }\r\n });\r\n\r\n host.commitUpdate(recorder);\r\n }\r\n return host;\r\n }\r\n}\r\n\r\n\r\n// //-------------------------------------------------------------------------------------------------\r\n// //\r\n// //-------------------------------------------------------------------------------------------------\r\n// function checkIfTheComponentNeedToBeRemoveFromGeneralMagicModule\r\n// (options: MagicOptionScheme, modulePath:string, moduleName:string, srcModuleName:string) : Rule {\r\n// return (tree: Tree , context : SchematicContext)=>{\r\n// const project = env.project;\r\n//\r\n// if (env.metadata.paths.generateCompForModuleName != \"\") {\r\n// LogLn(` [>] checking component name [${moduleName}]\r\n// from ${srcModuleName}]\r\n// To App Module : [${modulePath}]`);\r\n// const moduleSourceFile = getSourceFile(tree, modulePath);\r\n// if (isImported(moduleSourceFile, moduleName, srcModuleName)) {\r\n//\r\n// }\r\n// }\r\n//\r\n// return tree;\r\n// }\r\n// }\r\n\r\n/**************************\r\n * Helper Functions\r\n ***************************/\r\n\r\ninterface IComponentListParser {\r\n components: string[];\r\n endPos: number;\r\n isEmpty: boolean;\r\n}\r\n\r\nfunction getComponentsHashInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let isEmpty = true;\r\n\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const firstPunctuation: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(firstPunctuation && firstPunctuation.length > 0)) {\r\n throw new Error('magicGenCmpsHash variable has no open bracket ( { )');\r\n }\r\n endPos = firstPunctuation[0].end;\r\n const propertyAssignment = findNodes(firstPunctuation[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n if (propertyAssignment && propertyAssignment.length > 0) {\r\n isEmpty = false;\r\n }\r\n }\r\n return {\r\n components: null,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction getComponentsArrayInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.OpenBracketToken);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('magicGenComponents variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n //endPos = identifiers[identifiers.length - 1].end;\r\n cmpListArray = identifiers.map((i: any) => i.escapedText) as string[];\r\n }\r\n // Array with no items\r\n // else{\r\n // endPos = openBracketToken[0].end;\r\n // }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\n\r\nfunction getLazyLoadCompoenentsInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const cmpListVars: ts.Node[] = findNodes(source, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('FirstPunctuation variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n const identifiers1 = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n cmpListArray = identifiers.map((i: any) => i.name.escapedText ).filter(id => id !== \"moduleName\" && id !== \"modulePath\");\r\n }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction addComponentsToArray(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n let toAdd = `${cmpsToAdd}`;\r\n toAdd = `${toAdd.replace(/,/g, \",\\n\\t\")}`;\r\n\r\n return info.isEmpty ?\r\n`${prefix}\r\n\\t${toAdd} ${suffix}` :\r\n`${prefix}\r\n\\t${toAdd},${suffix}` ;\r\n}\r\n\r\nfunction addComponentsToHash(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n const cmpHashStr = EJS.render(`\r\n <% components.forEach(componentUniqueName => { %>\r\n <%= componentUniqueName %>:<%- componentUniqueName %>,\r\n <%})%>`, {components: cmpsToAdd});\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n /*return info.isEmpty ?\r\n `${prefix} ${delLastComma(cmpHashStr)} ${suffix}` :\r\n `${prefix} ${delLastComma(cmpHashStr)}, ${suffix}` ;*/\r\n}\r\n\r\n// add the lazy loaded components to map\r\nfunction addComponentsToLazyLoad(source: string, info: IComponentListParser, cmpsToAdd: View[], module_name: string): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n\r\n // get the module path\r\n let currentModulePath = env.metadata.paths.magicGenLibModulePath(module_name);\r\n\r\n const cmpHashStr = EJS.render(`\r\n<%{components.forEach(view =>{-%>\r\n<%=view.props.component_uniquename %> : { moduleName : 'Magic<%=moduleName%>Module'},\r\n<%})}-%>`, {components: cmpsToAdd, moduleName: module_name, modulePath: currentModulePath});\r\n\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n}\r\n\r\nfunction delLastComma(source: string) {\r\n let index = source.lastIndexOf(',');\r\n return source.substring(0, index);\r\n}\r\n\r\n\r\n\r\n"]}
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createGenFuncs = createGenFuncs;
4
4
  exports.generate = generate;
5
- const EJS = require("ejs");
5
+ const tslib_1 = require("tslib");
6
+ const EJS = tslib_1.__importStar(require("ejs"));
6
7
  //import * as prettier from "prettier";
7
- const jsbeautify = require("js-beautify");
8
+ const jsbeautify = tslib_1.__importStar(require("js-beautify"));
8
9
  const Util_1 = require("../Util");
9
10
  const env_1 = require("../env");
10
11
  const types_1 = require("../../../types");
@@ -1 +1 @@
1
- {"version":3,"file":"generate.rule.js","sourceRoot":"","sources":["generate.rule.ts"],"names":[],"mappings":";;AAYA,wCAiBC;AAED,4BA6BC;AA5DD,2BAAmC;AACnC,0CAA0C;AAC1C,0CAA2C;AAI3C,kCAAiC;AACjC,gCAA0C;AAC1C,0CAAoE;AAIpE,SAAgB,cAAc,CAAC,MAAe,EAAC,IAAwB;IACrE,MAAM,MAAM,GAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;QACjD,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAO,CAAC;QAC1B,iBAAiB,EAAQ,wBAAwB;QAChD,aAAa,EAAG,0BAA0B;KAC5C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,gFAAgF;QAChF,CAAC,0BAAkB,CAAC,EAAE,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,aAAa,EAAG,0BAA0B,EAAC,CAAC;QACzG,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC,0BAAkB,CAAC,GAAG,CAAC,EAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,CAAC;KAClE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAC,cAAc,EAAG,IAAI,EAAC,EACxB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACb,IAAI,GAAG,EAAE,CAAC;gBAAC,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAEhC,IAAI,CAAC;gBACH,0CAA0C;gBACxC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG;gBAEH,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5D,CAAC;qBAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC","sourcesContent":["import * as EJS from \"ejs\";\n//import * as prettier from \"prettier\";\nimport * as jsbeautify from \"js-beautify\";\n\nimport { Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\n\nimport { logErr } from \"../Util\";\nimport { MAGIC_CLI_FOLDER } from \"../env\";\nimport { GeneratedFileTypes, TemplateConfig } from \"../../../types\";\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\nimport { prettierConfig } from \"../config\";\n\nexport function createGenFuncs(output : string,type: GeneratedFileTypes ) {\n const htmlFn = jsbeautify.html.bind(this, output, {\n \"max_preserve_newlines\": 0,\n \"wrap_line_length\" : 0,\n \"wrap_attributes\" : \"force-expand-multiline\",\n \"brace_style\" : 'collapse,preserve-inline'\n });\n\n const fnMap = {\n [GeneratedFileTypes.HTML]: htmlFn,\n //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),\n [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {\"brace_style\" : 'collapse,preserve-inline'}),\n [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),\n [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })\n };\n\n return fnMap[type]();\n}\n\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\n return (host:Tree, context: SchematicContext) => {\n EJS.renderFile(\n `${MAGIC_CLI_FOLDER}/${file.template}`,\n file.data,\n {\"rmWhitespace\" : true},\n (err, output) => {\n if (err) { logErr(err); return }\n\n try {\n //if(file.type != GeneratedFileTypes.TS) {\n output = createGenFuncs(output, file.type);\n //}\n\n let path = `${file.destination}/${file.name}`;\n\n if(host.exists(path)){\n host.overwrite(`${file.destination}/${file.name}`, output)\n } else{\n host.create(`${file.destination}/${file.name}`, output);\n }\n }\n catch (err) {\n logErr(output);\n logErr(err);\n }\n });\n return host;\n }\n}\n"]}
1
+ {"version":3,"file":"generate.rule.js","sourceRoot":"","sources":["generate.rule.ts"],"names":[],"mappings":";;AAYA,wCAiBC;AAED,4BA6BC;;AA5DD,iDAAmC;AACnC,0CAA0C;AAC1C,gEAA2C;AAI3C,kCAAiC;AACjC,gCAA0C;AAC1C,0CAAoE;AAIpE,SAAgB,cAAc,CAAC,MAAe,EAAC,IAAwB;IACrE,MAAM,MAAM,GAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;QACjD,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAO,CAAC;QAC1B,iBAAiB,EAAQ,wBAAwB;QAChD,aAAa,EAAG,0BAA0B;KAC5C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,gFAAgF;QAChF,CAAC,0BAAkB,CAAC,EAAE,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,aAAa,EAAG,0BAA0B,EAAC,CAAC;QACzG,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC,0BAAkB,CAAC,GAAG,CAAC,EAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,CAAC;KAClE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAC,cAAc,EAAG,IAAI,EAAC,EACxB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACb,IAAI,GAAG,EAAE,CAAC;gBAAC,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAEhC,IAAI,CAAC;gBACH,0CAA0C;gBACxC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG;gBAEH,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5D,CAAC;qBAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC","sourcesContent":["import * as EJS from \"ejs\";\n//import * as prettier from \"prettier\";\nimport * as jsbeautify from \"js-beautify\";\n\nimport { Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\n\nimport { logErr } from \"../Util\";\nimport { MAGIC_CLI_FOLDER } from \"../env\";\nimport { GeneratedFileTypes, TemplateConfig } from \"../../../types\";\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\nimport { prettierConfig } from \"../config\";\n\nexport function createGenFuncs(output : string,type: GeneratedFileTypes ) {\n const htmlFn = jsbeautify.html.bind(this, output, {\n \"max_preserve_newlines\": 0,\n \"wrap_line_length\" : 0,\n \"wrap_attributes\" : \"force-expand-multiline\",\n \"brace_style\" : 'collapse,preserve-inline'\n });\n\n const fnMap = {\n [GeneratedFileTypes.HTML]: htmlFn,\n //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),\n [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {\"brace_style\" : 'collapse,preserve-inline'}),\n [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),\n [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })\n };\n\n return fnMap[type]();\n}\n\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\n return (host:Tree, context: SchematicContext) => {\n EJS.renderFile(\n `${MAGIC_CLI_FOLDER}/${file.template}`,\n file.data,\n {\"rmWhitespace\" : true},\n (err, output) => {\n if (err) { logErr(err); return }\n\n try {\n //if(file.type != GeneratedFileTypes.TS) {\n output = createGenFuncs(output, file.type);\n //}\n\n let path = `${file.destination}/${file.name}`;\n\n if(host.exists(path)){\n host.overwrite(`${file.destination}/${file.name}`, output)\n } else{\n host.create(`${file.destination}/${file.name}`, output);\n }\n }\n catch (err) {\n logErr(output);\n logErr(err);\n }\n });\n return host;\n }\n}\n"]}
@@ -27,9 +27,7 @@ import {MatTooltipModule} from "@angular/material/tooltip";
27
27
  import {MatButtonModule} from "@angular/material/button";
28
28
  import {MatAutocompleteModule} from "@angular/material/autocomplete";
29
29
  import {NgxCurrency, NgxCurrencyInputMode, provideEnvironmentNgxCurrency} from "@dintecom/ngx-currency";
30
- import {NgxMaskModule, IConfig} from "ngx-mask";
31
-
32
- export const options: Partial<IConfig> | (() => Partial<IConfig>) = {};
30
+ import {NgxMaskDirective, provideNgxMask} from "ngx-mask";
33
31
 
34
32
  @NgModule({
35
33
  declarations: [
@@ -50,7 +48,7 @@ export const options: Partial<IConfig> | (() => Partial<IConfig>) = {};
50
48
  DynamicModule,
51
49
  InfiniteScrollDirective,
52
50
  NgxCurrency,
53
- NgxMaskModule.forRoot(),
51
+ NgxMaskDirective,
54
52
 
55
53
  // Material Modules
56
54
  MatTableModule,
@@ -72,6 +70,7 @@ export const options: Partial<IConfig> | (() => Partial<IConfig>) = {};
72
70
  MatAutocompleteModule
73
71
  ],
74
72
  providers: [ExitMagicService,
73
+ provideNgxMask(),
75
74
  provideEnvironmentNgxCurrency({
76
75
  align: "right",
77
76
  allowNegative: true,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mgAdd = mgAdd;
4
+ const tslib_1 = require("tslib");
4
5
  const schematics_1 = require("@angular-devkit/schematics");
5
6
  const tasks_1 = require("@angular-devkit/schematics/tasks");
6
7
  const package_1 = require("./../utils/package");
@@ -12,7 +13,7 @@ const Util_1 = require("../magic-utils/Util");
12
13
  const generate_rule_1 = require("../magic-utils/rules/generate.rule");
13
14
  const generated_file_types_enum_1 = require("../../types/enums/generated-file-types.enum");
14
15
  const ast_utils_1 = require("../utils/devkit-utils/ast-utils");
15
- const ts = require("typescript");
16
+ const ts = tslib_1.__importStar(require("typescript"));
16
17
  const change_1 = require("../utils/devkit-utils/change");
17
18
  function mgAdd(options) {
18
19
  return (0, schematics_1.chain)([
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Rule,\r\n chain,\r\n Tree,\r\n SchematicContext\r\n} from \"@angular-devkit/schematics\";\r\nimport {NodePackageInstallTask} from \"@angular-devkit/schematics/tasks\";\r\n\r\nimport {addPackageToPackageJson} from './../utils/package';\r\nimport { dependencies, devDependencies, env} from \"../magic-utils/env\";\r\nimport { addImportTSModule, copyMagicFiles} from \"../magic-utils/utils\";\r\nimport { initMagicMetadata} from \"../magic-utils/rules/init-magic-metadata.rule\";\r\nimport { addModuleImportToRootModule } from \"../utils/ast\";\r\nimport { LogLn } from \"../magic-utils/Util\";\r\nimport { generate } from \"../magic-utils/rules/generate.rule\";\r\nimport { GeneratedFileTypes } from \"../../types/enums/generated-file-types.enum\";\r\nimport { MagicOptionScheme } from \"../magic-utils/rules/magic-option.scheme\";\r\nimport {addProviderToModule, getDecoratorMetadata, insertImport} from \"../utils/devkit-utils/ast-utils\";\r\nimport * as ts from 'typescript';\r\nimport {InsertChange} from \"../utils/devkit-utils/change\";\r\nexport function mgAdd(options:MagicOptionScheme): Rule {\r\n return chain([\r\n initMagicMetadata (options),\r\n copyMagicFiles (options),\r\n\r\n // handel app.modules.ts\r\n addMagicModuleToAppModule (options),\r\n\r\n // handel Angular.json\r\n updateAngularJsonWithMagicStyle (options),\r\n\r\n updateTsConfigAppJson (options),\r\n\r\n addLazyLoadProvider(),\r\n\r\n addZoneChangeDetectionProviderRule(),\r\n //handel app.html\r\n //updateAppComponentHtmlFiles (options),\r\n\r\n //handel package.Json\r\n //addMagicDependenciesToPackageJson (options),\r\n ]);\r\n}\r\n\r\nfunction updateAppComponentHtmlFiles(options:MagicOptionScheme): Rule {\r\n return generate({\r\n template : \"./templates/angular/src/app/app.html.ejs\",\r\n name : \"app.html\",\r\n destination : env.metadata.paths.rootMagicGenFolder,\r\n type :GeneratedFileTypes.HTML,\r\n data : {\r\n skipHelp : options.skipHelp\r\n }\r\n },options)\r\n}\r\nfunction updateAngularJsonWithMagicStyle(options:MagicOptionScheme): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n const project = env.project;\r\n let isDirty = false;\r\n\r\n let fullPathmagicStylePath = env.metadata.paths.magicStylePath;\r\n // if (!project.architect.test.options.styles.includes(fullPathmagicStylePath)) {\r\n // context.logger.info(` [>]add file ${fullPathmagicStylePath} to test`);\r\n // project.architect.test.options.styles.push(fullPathmagicStylePath);\r\n // isDirty = true;\r\n // }\r\n\r\n if (!project.architect.build.options.styles.includes(fullPathmagicStylePath)) {\r\n context.logger.info(` [>]add file ${fullPathmagicStylePath} to build`);\r\n project.architect.build.options.styles.push(fullPathmagicStylePath);\r\n isDirty = true;\r\n }\r\n\r\n const buildOptions = project?.architect?.build?.options;\r\n const testOptions = project?.architect?.test?.options;\r\n\r\n if (buildOptions) {\r\n const changed = ensurePolyfills(buildOptions, ['zone.js']);\r\n if (changed) {\r\n context.logger.info(` [>]add polyfill zone.js to build`);\r\n isDirty = true;\r\n }\r\n }\r\n\r\n if (testOptions) {\r\n const changed = ensurePolyfills(testOptions, ['zone.js', 'zone.js/testing']);\r\n if (changed) {\r\n context.logger.info(` [>]add polyfills zone.js, zone.js/testing to test`);\r\n isDirty = true;\r\n }\r\n }\r\n\r\n if(isDirty){\r\n let fullPath = env.metadata.paths.angularJsonPath;\r\n host.overwrite(fullPath, JSON.stringify(env.workspace, null, 2));\r\n }\r\n\r\n return host;\r\n };\r\n}\r\n\r\nfunction ensurePolyfills(options: any, requiredPolyfills: string[]): boolean {\r\n let polyfills: any[] = [];\r\n\r\n if (Array.isArray(options.polyfills)) {\r\n polyfills = [...options.polyfills];\r\n } else if (typeof options.polyfills === 'string' && options.polyfills.trim()) {\r\n polyfills = [options.polyfills];\r\n }\r\n\r\n let changed = !Array.isArray(options.polyfills);\r\n for (const entry of requiredPolyfills) {\r\n if (!polyfills.includes(entry)) {\r\n polyfills.push(entry);\r\n changed = true;\r\n }\r\n }\r\n\r\n if (changed) {\r\n options.polyfills = polyfills;\r\n }\r\n\r\n return changed;\r\n}\r\n\r\n// Angular 10 , does not include .ts file for compilation\r\n// So to avoid compilation error , add *.module.ts in includes section\r\nfunction updateTsConfigAppJson (option: MagicOptionScheme): Rule{\r\n return (host: Tree, context: SchematicContext) => {\r\n\r\n const tsConfigPath = env.metadata.paths.tsConfigAppJsonPath;\r\n const tsConfig = host.read(tsConfigPath).toString();\r\n\r\n // extract the comment\r\n let firstIndex = tsConfig.indexOf('*/');\r\n let secondIndex = tsConfig.indexOf('*/', firstIndex + 2);\r\n let comment = tsConfig.substring(0, secondIndex + 2);\r\n\r\n // replace the comment as parsing json with comment throws exception\r\n var config = JSON.parse(tsConfig.replace(comment, ''));\r\n\r\n //Add module files for compilation\r\n if(!config['include'].includes('src/**/*module.ts'))\r\n config['include'].push('src/**/*module.ts');\r\n\r\n if (!config['compilerOptions'])\r\n config['compilerOptions'] = {};\r\n\r\n // Ensures forceConsistentCasingInFileNames is set to false inorder to avoid path casing differences while compilation\r\n config['compilerOptions']['forceConsistentCasingInFileNames'] = false;\r\n\r\n // append the comment again and write the file\r\n host.overwrite(tsConfigPath, comment + \"\\n\" + JSON.stringify(config, null , 2));\r\n return host;\r\n }\r\n}\r\n\r\nfunction addMagicDependenciesToPackageJson(option:MagicOptionScheme): Rule {\r\n\treturn (host: Tree, context: SchematicContext) => {\r\n\t if(!option.skipPackageJson){\r\n for (let dep of dependencies){\r\n LogLn(`[>] Add dependencies ${dep.name}`);\r\n addPackageToPackageJson(host, 'dependencies', dep.name, dep.version);\r\n }\r\n /*\r\n // done in pre-install step\r\n for (let dep of devDependencies){\r\n LogLn(`[>] Add devDependencies ${dep.name}`);\r\n addPackageToPackageJson(host, 'devDependencies', dep.name, dep.version);\r\n }\r\n */\r\n }\r\n\r\n\t\tif(!option.skipInstall){\r\n LogLn(`[>] Install dependencies.`);\r\n context.addTask(new NodePackageInstallTask());\r\n }else{\r\n LogLn(`skipIstalls ${dependencies.length} dependencies`);\r\n LogLn(`skipIstalls ${devDependencies.length} devDependencies`);\r\n }\r\n\r\n\t\treturn host;\r\n\t};\r\n}\r\nfunction addMagicModuleToAppModule(options: MagicOptionScheme) : Rule {\r\n return (host: Tree , context : SchematicContext)=>{\r\n const workspace = env.workspace;\r\n const project = env.project;\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'BrowserAnimationsModule',\r\n '@angular/platform-browser/animations',\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'ReactiveFormsModule',\r\n '@angular/forms',\r\n project);\r\n\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicModule',\r\n \"@magic-xpa/angular\",\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicAngularMaterialModule',\r\n \"@magic-xpa/angular-material-core\",\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicGenLibModule',\r\n \"./magic/magic.gen.lib.module\",\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicRoutingModule',\r\n \"./app.routes\",\r\n project);\r\n\r\n\r\n }\r\n}\r\n\r\nfunction addLazyLoadProvider(): Rule {\r\n return (host: Tree) => {\r\n const appmodule = env.metadata.paths.rootMagicGenFolder + '/app-module.ts';\r\n\r\n const lazyLoaderService = 'LazyLoaderService';\r\n const lazyLoaderServicePath = './magic/lazy-loader.service';\r\n\r\n let text = host.read(appmodule);\r\n let sourceText = text.toString('utf-8');\r\n let source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n let providerChanges = addProviderToModule(source, appmodule, '{ provide: MagicLazyLoaderService, useClass: LazyLoaderService }', lazyLoaderServicePath)\r\n\r\n const providerRecorder = host.beginUpdate(appmodule);\r\n for (const change of providerChanges) {\r\n if (change instanceof InsertChange) {\r\n if (!change.toAdd.includes('import')) // skip import change\r\n providerRecorder.insertLeft(change.pos, change.toAdd);\r\n }\r\n }\r\n host.commitUpdate(providerRecorder);\r\n\r\n sourceText = host.read(appmodule).toString('utf-8');\r\n source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n const lazyLoaderServiceImport = insertImport(source, appmodule, lazyLoaderService, lazyLoaderServicePath, false);\r\n const lazyLoaderServiceChangesRecorder = host.beginUpdate(appmodule);\r\n if (lazyLoaderServiceImport instanceof InsertChange)\r\n lazyLoaderServiceChangesRecorder.insertLeft(lazyLoaderServiceImport.pos, lazyLoaderServiceImport.toAdd);\r\n host.commitUpdate(lazyLoaderServiceChangesRecorder);\r\n\r\n // add import for MagicLazyLoaderService\r\n sourceText = host.read(appmodule).toString('utf-8');\r\n source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n const magicLazyLoaderServiceImportChanges: InsertChange = <InsertChange>insertImport(source, appmodule, 'MagicLazyLoaderService', '@magic-xpa/angular', false);\r\n const magicImportChangesRecorder = host.beginUpdate(appmodule);\r\n magicImportChangesRecorder.insertLeft(magicLazyLoaderServiceImportChanges.pos, magicLazyLoaderServiceImportChanges.toAdd)\r\n host.commitUpdate(magicImportChangesRecorder);\r\n }\r\n}\r\n\r\nfunction addZoneChangeDetectionProviderRule(): Rule {\r\n return (host: Tree) => {\r\n // Resolve the generated root module path (src/app/app-module.ts in this project layout).\r\n const appmodule = env.metadata.paths.rootMagicGenFolder + '/app-module.ts';\r\n\r\n // Append provideZoneChangeDetection() to NgModule.providers if it does not already exist.\r\n addZoneChangeDetectionProvider(host, appmodule);\r\n\r\n // Re-parse from disk after provider update so import insertion uses fresh AST positions.\r\n const sourceText = host.read(appmodule).toString('utf-8');\r\n const source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n\r\n // Ensure the symbol import exists; insertImport is idempotent and avoids duplicates.\r\n const zoneChangeDetectionImport = insertImport(source, appmodule, 'provideZoneChangeDetection', '@angular/core', false);\r\n const zoneChangeDetectionImportChangesRecorder = host.beginUpdate(appmodule);\r\n if (zoneChangeDetectionImport instanceof InsertChange)\r\n zoneChangeDetectionImportChangesRecorder.insertLeft(zoneChangeDetectionImport.pos, zoneChangeDetectionImport.toAdd);\r\n host.commitUpdate(zoneChangeDetectionImportChangesRecorder);\r\n };\r\n}\r\n\r\nfunction addZoneChangeDetectionProvider(host: Tree, appmodule: string): void {\r\n const zoneProvider = 'provideZoneChangeDetection()';\r\n const sourceText = host.read(appmodule).toString('utf-8');\r\n const source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n\r\n // Locate the first @NgModule({...}) metadata object in app-module.ts.\r\n const ngModules = getDecoratorMetadata(source, 'NgModule', '@angular/core');\r\n\r\n if (!ngModules.length) {\r\n return;\r\n }\r\n\r\n const ngModuleMetadata = ngModules[0] as ts.ObjectLiteralExpression;\r\n // Find the `providers` property assignment inside @NgModule metadata.\r\n const providersProperty = ngModuleMetadata.properties\r\n .filter(ts.isPropertyAssignment)\r\n .find((prop: ts.PropertyAssignment) => {\r\n if (ts.isIdentifier(prop.name)) {\r\n return prop.name.text === 'providers';\r\n }\r\n\r\n return ts.isStringLiteral(prop.name) && prop.name.text === 'providers';\r\n });\r\n\r\n if (!providersProperty || !ts.isArrayLiteralExpression(providersProperty.initializer)) {\r\n return;\r\n }\r\n\r\n const providersArray = providersProperty.initializer;\r\n // Keep this operation idempotent: do nothing if provider already exists.\r\n const hasZoneProvider = providersArray.elements.some((el: ts.Expression) => {\r\n return el.getText(source).replace(/\\s+/g, '') === zoneProvider;\r\n });\r\n\r\n if (hasZoneProvider) {\r\n return;\r\n }\r\n\r\n let insertPos: number;\r\n let toAdd: string;\r\n if (providersArray.elements.length === 0) {\r\n // Empty providers: inject the item directly between [].\r\n insertPos = providersArray.getEnd() - 1;\r\n toAdd = zoneProvider;\r\n } else {\r\n // Non-empty providers: append after last provider, preserving line formatting when possible.\r\n const lastProvider = providersArray.elements[providersArray.elements.length - 1];\r\n insertPos = lastProvider.getEnd();\r\n const lastProviderText = lastProvider.getFullText(source);\r\n const newLineMatch = lastProviderText.match(/^\\r?\\n(\\r?)\\s+/);\r\n if (newLineMatch) {\r\n toAdd = `,${newLineMatch[0]}${zoneProvider}`;\r\n } else {\r\n toAdd = `, ${zoneProvider}`;\r\n }\r\n }\r\n\r\n // Apply the computed insertion at the exact Abstract Syntax Tree-derived position.\r\n const recorder = host.beginUpdate(appmodule);\r\n recorder.insertLeft(insertPos, toAdd);\r\n host.commitUpdate(recorder);\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Rule,\r\n chain,\r\n Tree,\r\n SchematicContext\r\n} from \"@angular-devkit/schematics\";\r\nimport {NodePackageInstallTask} from \"@angular-devkit/schematics/tasks\";\r\n\r\nimport {addPackageToPackageJson} from './../utils/package';\r\nimport { dependencies, devDependencies, env} from \"../magic-utils/env\";\r\nimport { addImportTSModule, copyMagicFiles} from \"../magic-utils/utils\";\r\nimport { initMagicMetadata} from \"../magic-utils/rules/init-magic-metadata.rule\";\r\nimport { addModuleImportToRootModule } from \"../utils/ast\";\r\nimport { LogLn } from \"../magic-utils/Util\";\r\nimport { generate } from \"../magic-utils/rules/generate.rule\";\r\nimport { GeneratedFileTypes } from \"../../types/enums/generated-file-types.enum\";\r\nimport { MagicOptionScheme } from \"../magic-utils/rules/magic-option.scheme\";\r\nimport {addProviderToModule, getDecoratorMetadata, insertImport} from \"../utils/devkit-utils/ast-utils\";\r\nimport * as ts from 'typescript';\r\nimport {InsertChange} from \"../utils/devkit-utils/change\";\r\nexport function mgAdd(options:MagicOptionScheme): Rule {\r\n return chain([\r\n initMagicMetadata (options),\r\n copyMagicFiles (options),\r\n\r\n // handel app.modules.ts\r\n addMagicModuleToAppModule (options),\r\n\r\n // handel Angular.json\r\n updateAngularJsonWithMagicStyle (options),\r\n\r\n updateTsConfigAppJson (options),\r\n\r\n addLazyLoadProvider(),\r\n\r\n addZoneChangeDetectionProviderRule(),\r\n //handel app.html\r\n //updateAppComponentHtmlFiles (options),\r\n\r\n //handel package.Json\r\n //addMagicDependenciesToPackageJson (options),\r\n ]);\r\n}\r\n\r\nfunction updateAppComponentHtmlFiles(options:MagicOptionScheme): Rule {\r\n return generate({\r\n template : \"./templates/angular/src/app/app.html.ejs\",\r\n name : \"app.html\",\r\n destination : env.metadata.paths.rootMagicGenFolder,\r\n type :GeneratedFileTypes.HTML,\r\n data : {\r\n skipHelp : options.skipHelp\r\n }\r\n },options)\r\n}\r\nfunction updateAngularJsonWithMagicStyle(options:MagicOptionScheme): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n const project = env.project;\r\n let isDirty = false;\r\n\r\n let fullPathmagicStylePath = env.metadata.paths.magicStylePath;\r\n // if (!project.architect.test.options.styles.includes(fullPathmagicStylePath)) {\r\n // context.logger.info(` [>]add file ${fullPathmagicStylePath} to test`);\r\n // project.architect.test.options.styles.push(fullPathmagicStylePath);\r\n // isDirty = true;\r\n // }\r\n\r\n if (!project.architect.build.options.styles.includes(fullPathmagicStylePath)) {\r\n context.logger.info(` [>]add file ${fullPathmagicStylePath} to build`);\r\n project.architect.build.options.styles.push(fullPathmagicStylePath);\r\n isDirty = true;\r\n }\r\n\r\n const buildOptions = project?.architect?.build?.options;\r\n const testOptions = project?.architect?.test?.options;\r\n\r\n if (buildOptions) {\r\n const changed = ensurePolyfills(buildOptions, ['zone.js']);\r\n if (changed) {\r\n context.logger.info(` [>]add polyfill zone.js to build`);\r\n isDirty = true;\r\n }\r\n }\r\n\r\n if (testOptions) {\r\n const changed = ensurePolyfills(testOptions, ['zone.js', 'zone.js/testing']);\r\n if (changed) {\r\n context.logger.info(` [>]add polyfills zone.js, zone.js/testing to test`);\r\n isDirty = true;\r\n }\r\n }\r\n\r\n if(isDirty){\r\n let fullPath = env.metadata.paths.angularJsonPath;\r\n host.overwrite(fullPath, JSON.stringify(env.workspace, null, 2));\r\n }\r\n\r\n return host;\r\n };\r\n}\r\n\r\nfunction ensurePolyfills(options: any, requiredPolyfills: string[]): boolean {\r\n let polyfills: any[] = [];\r\n\r\n if (Array.isArray(options.polyfills)) {\r\n polyfills = [...options.polyfills];\r\n } else if (typeof options.polyfills === 'string' && options.polyfills.trim()) {\r\n polyfills = [options.polyfills];\r\n }\r\n\r\n let changed = !Array.isArray(options.polyfills);\r\n for (const entry of requiredPolyfills) {\r\n if (!polyfills.includes(entry)) {\r\n polyfills.push(entry);\r\n changed = true;\r\n }\r\n }\r\n\r\n if (changed) {\r\n options.polyfills = polyfills;\r\n }\r\n\r\n return changed;\r\n}\r\n\r\n// Angular 10 , does not include .ts file for compilation\r\n// So to avoid compilation error , add *.module.ts in includes section\r\nfunction updateTsConfigAppJson (option: MagicOptionScheme): Rule{\r\n return (host: Tree, context: SchematicContext) => {\r\n\r\n const tsConfigPath = env.metadata.paths.tsConfigAppJsonPath;\r\n const tsConfig = host.read(tsConfigPath).toString();\r\n\r\n // extract the comment\r\n let firstIndex = tsConfig.indexOf('*/');\r\n let secondIndex = tsConfig.indexOf('*/', firstIndex + 2);\r\n let comment = tsConfig.substring(0, secondIndex + 2);\r\n\r\n // replace the comment as parsing json with comment throws exception\r\n var config = JSON.parse(tsConfig.replace(comment, ''));\r\n\r\n //Add module files for compilation\r\n if(!config['include'].includes('src/**/*module.ts'))\r\n config['include'].push('src/**/*module.ts');\r\n\r\n if (!config['compilerOptions'])\r\n config['compilerOptions'] = {};\r\n\r\n // Ensures forceConsistentCasingInFileNames is set to false inorder to avoid path casing differences while compilation\r\n config['compilerOptions']['forceConsistentCasingInFileNames'] = false;\r\n\r\n // append the comment again and write the file\r\n host.overwrite(tsConfigPath, comment + \"\\n\" + JSON.stringify(config, null , 2));\r\n return host;\r\n }\r\n}\r\n\r\nfunction addMagicDependenciesToPackageJson(option:MagicOptionScheme): Rule {\r\n\treturn (host: Tree, context: SchematicContext) => {\r\n\t if(!option.skipPackageJson){\r\n for (let dep of dependencies){\r\n LogLn(`[>] Add dependencies ${dep.name}`);\r\n addPackageToPackageJson(host, 'dependencies', dep.name, dep.version);\r\n }\r\n /*\r\n // done in pre-install step\r\n for (let dep of devDependencies){\r\n LogLn(`[>] Add devDependencies ${dep.name}`);\r\n addPackageToPackageJson(host, 'devDependencies', dep.name, dep.version);\r\n }\r\n */\r\n }\r\n\r\n\t\tif(!option.skipInstall){\r\n LogLn(`[>] Install dependencies.`);\r\n context.addTask(new NodePackageInstallTask());\r\n }else{\r\n LogLn(`skipIstalls ${dependencies.length} dependencies`);\r\n LogLn(`skipIstalls ${devDependencies.length} devDependencies`);\r\n }\r\n\r\n\t\treturn host;\r\n\t};\r\n}\r\nfunction addMagicModuleToAppModule(options: MagicOptionScheme) : Rule {\r\n return (host: Tree , context : SchematicContext)=>{\r\n const workspace = env.workspace;\r\n const project = env.project;\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'BrowserAnimationsModule',\r\n '@angular/platform-browser/animations',\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'ReactiveFormsModule',\r\n '@angular/forms',\r\n project);\r\n\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicModule',\r\n \"@magic-xpa/angular\",\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicAngularMaterialModule',\r\n \"@magic-xpa/angular-material-core\",\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicGenLibModule',\r\n \"./magic/magic.gen.lib.module\",\r\n project);\r\n\r\n addModuleImportToRootModule(\r\n host,\r\n 'MagicRoutingModule',\r\n \"./app.routes\",\r\n project);\r\n\r\n\r\n }\r\n}\r\n\r\nfunction addLazyLoadProvider(): Rule {\r\n return (host: Tree) => {\r\n const appmodule = env.metadata.paths.rootMagicGenFolder + '/app-module.ts';\r\n\r\n const lazyLoaderService = 'LazyLoaderService';\r\n const lazyLoaderServicePath = './magic/lazy-loader.service';\r\n\r\n let text = host.read(appmodule);\r\n let sourceText = text.toString('utf-8');\r\n let source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n let providerChanges = addProviderToModule(source, appmodule, '{ provide: MagicLazyLoaderService, useClass: LazyLoaderService }', lazyLoaderServicePath)\r\n\r\n const providerRecorder = host.beginUpdate(appmodule);\r\n for (const change of providerChanges) {\r\n if (change instanceof InsertChange) {\r\n if (!change.toAdd.includes('import')) // skip import change\r\n providerRecorder.insertLeft(change.pos, change.toAdd);\r\n }\r\n }\r\n host.commitUpdate(providerRecorder);\r\n\r\n sourceText = host.read(appmodule).toString('utf-8');\r\n source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n const lazyLoaderServiceImport = insertImport(source, appmodule, lazyLoaderService, lazyLoaderServicePath, false);\r\n const lazyLoaderServiceChangesRecorder = host.beginUpdate(appmodule);\r\n if (lazyLoaderServiceImport instanceof InsertChange)\r\n lazyLoaderServiceChangesRecorder.insertLeft(lazyLoaderServiceImport.pos, lazyLoaderServiceImport.toAdd);\r\n host.commitUpdate(lazyLoaderServiceChangesRecorder);\r\n\r\n // add import for MagicLazyLoaderService\r\n sourceText = host.read(appmodule).toString('utf-8');\r\n source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n const magicLazyLoaderServiceImportChanges: InsertChange = <InsertChange>insertImport(source, appmodule, 'MagicLazyLoaderService', '@magic-xpa/angular', false);\r\n const magicImportChangesRecorder = host.beginUpdate(appmodule);\r\n magicImportChangesRecorder.insertLeft(magicLazyLoaderServiceImportChanges.pos, magicLazyLoaderServiceImportChanges.toAdd)\r\n host.commitUpdate(magicImportChangesRecorder);\r\n }\r\n}\r\n\r\nfunction addZoneChangeDetectionProviderRule(): Rule {\r\n return (host: Tree) => {\r\n // Resolve the generated root module path (src/app/app-module.ts in this project layout).\r\n const appmodule = env.metadata.paths.rootMagicGenFolder + '/app-module.ts';\r\n\r\n // Append provideZoneChangeDetection() to NgModule.providers if it does not already exist.\r\n addZoneChangeDetectionProvider(host, appmodule);\r\n\r\n // Re-parse from disk after provider update so import insertion uses fresh AST positions.\r\n const sourceText = host.read(appmodule).toString('utf-8');\r\n const source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n\r\n // Ensure the symbol import exists; insertImport is idempotent and avoids duplicates.\r\n const zoneChangeDetectionImport = insertImport(source, appmodule, 'provideZoneChangeDetection', '@angular/core', false);\r\n const zoneChangeDetectionImportChangesRecorder = host.beginUpdate(appmodule);\r\n if (zoneChangeDetectionImport instanceof InsertChange)\r\n zoneChangeDetectionImportChangesRecorder.insertLeft(zoneChangeDetectionImport.pos, zoneChangeDetectionImport.toAdd);\r\n host.commitUpdate(zoneChangeDetectionImportChangesRecorder);\r\n };\r\n}\r\n\r\nfunction addZoneChangeDetectionProvider(host: Tree, appmodule: string): void {\r\n const zoneProvider = 'provideZoneChangeDetection()';\r\n const sourceText = host.read(appmodule).toString('utf-8');\r\n const source = ts.createSourceFile(appmodule, sourceText, ts.ScriptTarget.Latest, true);\r\n\r\n // Locate the first @NgModule({...}) metadata object in app-module.ts.\r\n const ngModules = getDecoratorMetadata(source, 'NgModule', '@angular/core');\r\n\r\n if (!ngModules.length) {\r\n return;\r\n }\r\n\r\n const ngModuleMetadata = ngModules[0] as ts.ObjectLiteralExpression;\r\n // Find the `providers` property assignment inside @NgModule metadata.\r\n const providersProperty = ngModuleMetadata.properties\r\n .filter(ts.isPropertyAssignment)\r\n .find((prop: ts.PropertyAssignment) => {\r\n if (ts.isIdentifier(prop.name)) {\r\n return prop.name.text === 'providers';\r\n }\r\n\r\n return ts.isStringLiteral(prop.name) && prop.name.text === 'providers';\r\n });\r\n\r\n if (!providersProperty || !ts.isArrayLiteralExpression(providersProperty.initializer)) {\r\n return;\r\n }\r\n\r\n const providersArray = providersProperty.initializer;\r\n // Keep this operation idempotent: do nothing if provider already exists.\r\n const hasZoneProvider = providersArray.elements.some((el: ts.Expression) => {\r\n return el.getText(source).replace(/\\s+/g, '') === zoneProvider;\r\n });\r\n\r\n if (hasZoneProvider) {\r\n return;\r\n }\r\n\r\n let insertPos: number;\r\n let toAdd: string;\r\n if (providersArray.elements.length === 0) {\r\n // Empty providers: inject the item directly between [].\r\n insertPos = providersArray.getEnd() - 1;\r\n toAdd = zoneProvider;\r\n } else {\r\n // Non-empty providers: append after last provider, preserving line formatting when possible.\r\n const lastProvider = providersArray.elements[providersArray.elements.length - 1];\r\n insertPos = lastProvider.getEnd();\r\n const lastProviderText = lastProvider.getFullText(source);\r\n const newLineMatch = lastProviderText.match(/^\\r?\\n(\\r?)\\s+/);\r\n if (newLineMatch) {\r\n toAdd = `,${newLineMatch[0]}${zoneProvider}`;\r\n } else {\r\n toAdd = `, ${zoneProvider}`;\r\n }\r\n }\r\n\r\n // Apply the computed insertion at the exact Abstract Syntax Tree-derived position.\r\n const recorder = host.beginUpdate(appmodule);\r\n recorder.insertLeft(insertPos, toAdd);\r\n host.commitUpdate(recorder);\r\n}\r\n\r\n"]}
@@ -6,9 +6,10 @@ exports.addModuleImportToModule = addModuleImportToModule;
6
6
  exports.getIndexHtmlPath = getIndexHtmlPath;
7
7
  exports.getStylesPath = getStylesPath;
8
8
  exports.findModuleFromOptions = findModuleFromOptions;
9
+ const tslib_1 = require("tslib");
9
10
  const core_1 = require("@angular-devkit/core");
10
11
  const schematics_1 = require("@angular-devkit/schematics");
11
- const ts = require("typescript");
12
+ const ts = tslib_1.__importStar(require("typescript"));
12
13
  const ast_utils_1 = require("./devkit-utils/ast-utils");
13
14
  const change_1 = require("./devkit-utils/change");
14
15
  const config_1 = require("./devkit-utils/config");