tnp-helpers 16.444.19 → 16.444.21

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 (120) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-git.mjs +48 -5
  3. package/browser/esm2022/lib/base/base-library-build.mjs +27 -12
  4. package/browser/esm2022/lib/base/base-linked-projects.mjs +14 -3
  5. package/browser/esm2022/lib/base/base-npm-helpers.mjs +41 -2
  6. package/browser/esm2022/lib/base/base-project-resolver.mjs +10 -1
  7. package/browser/esm2022/lib/base/base-project.mjs +71 -9
  8. package/browser/esm2022/lib/base/base-release-process.mjs +204 -0
  9. package/browser/esm2022/lib/base/base-vscode.mjs +66 -0
  10. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  11. package/browser/esm2022/lib/base/linked-project.mjs +2 -7
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/fesm2022/tnp-helpers.mjs +205 -32
  14. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/browser/lib/base/base-git.d.ts +17 -0
  16. package/browser/lib/base/base-library-build.d.ts +2 -1
  17. package/browser/lib/base/base-npm-helpers.d.ts +3 -0
  18. package/browser/lib/base/base-project-resolver.d.ts +9 -8
  19. package/browser/lib/base/base-project.d.ts +12 -7
  20. package/browser/lib/base/base-release-process.d.ts +40 -0
  21. package/browser/lib/base/base-vscode.d.ts +6 -0
  22. package/browser/lib/base/core-project.d.ts +8 -0
  23. package/browser/lib/models.d.ts +7 -1
  24. package/client/esm2022/lib/base/base-git.mjs +48 -5
  25. package/client/esm2022/lib/base/base-library-build.mjs +27 -12
  26. package/client/esm2022/lib/base/base-linked-projects.mjs +14 -3
  27. package/client/esm2022/lib/base/base-npm-helpers.mjs +41 -2
  28. package/client/esm2022/lib/base/base-project-resolver.mjs +10 -1
  29. package/client/esm2022/lib/base/base-project.mjs +71 -9
  30. package/client/esm2022/lib/base/base-release-process.mjs +204 -0
  31. package/client/esm2022/lib/base/base-vscode.mjs +66 -0
  32. package/client/esm2022/lib/base/core-project.mjs +1 -1
  33. package/client/esm2022/lib/base/linked-project.mjs +2 -7
  34. package/client/esm2022/lib/models.mjs +1 -1
  35. package/client/fesm2022/tnp-helpers.mjs +205 -32
  36. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  37. package/client/lib/base/base-git.d.ts +17 -0
  38. package/client/lib/base/base-library-build.d.ts +2 -1
  39. package/client/lib/base/base-npm-helpers.d.ts +3 -0
  40. package/client/lib/base/base-project-resolver.d.ts +9 -8
  41. package/client/lib/base/base-project.d.ts +12 -7
  42. package/client/lib/base/base-release-process.d.ts +40 -0
  43. package/client/lib/base/base-vscode.d.ts +6 -0
  44. package/client/lib/base/core-project.d.ts +8 -0
  45. package/client/lib/models.d.ts +7 -1
  46. package/client/package.json +32 -31
  47. package/lib/base/base-command-line.backend.d.ts +4 -1
  48. package/lib/base/base-command-line.backend.js +101 -6
  49. package/lib/base/base-command-line.backend.js.map +1 -1
  50. package/lib/base/base-git.d.ts +17 -0
  51. package/lib/base/base-git.js +120 -52
  52. package/lib/base/base-git.js.map +1 -1
  53. package/lib/base/base-library-build.d.ts +2 -1
  54. package/lib/base/base-library-build.js +159 -127
  55. package/lib/base/base-library-build.js.map +1 -1
  56. package/lib/base/base-linked-projects.js +13 -3
  57. package/lib/base/base-linked-projects.js.map +1 -1
  58. package/lib/base/base-npm-helpers.d.ts +3 -0
  59. package/lib/base/base-npm-helpers.js +57 -1
  60. package/lib/base/base-npm-helpers.js.map +1 -1
  61. package/lib/base/base-project-resolver.d.ts +10 -9
  62. package/lib/base/base-project-resolver.js +11 -1
  63. package/lib/base/base-project-resolver.js.map +1 -1
  64. package/lib/base/base-project.d.ts +13 -8
  65. package/lib/base/base-project.js +92 -21
  66. package/lib/base/base-project.js.map +1 -1
  67. package/lib/base/base-release-process.d.ts +39 -0
  68. package/lib/base/base-release-process.js +289 -0
  69. package/lib/base/base-release-process.js.map +1 -0
  70. package/lib/base/base-vscode.d.ts +5 -0
  71. package/lib/base/base-vscode.js +79 -0
  72. package/lib/base/base-vscode.js.map +1 -0
  73. package/lib/base/command-line-feature.backend.d.ts +6 -1
  74. package/lib/base/command-line-feature.backend.js +67 -1
  75. package/lib/base/command-line-feature.backend.js.map +1 -1
  76. package/lib/base/core-project.d.ts +8 -0
  77. package/lib/base/core-project.js.map +1 -1
  78. package/lib/base/linked-project.js +8 -10
  79. package/lib/base/linked-project.js.map +1 -1
  80. package/lib/helpers/for-backend/helpers-console-gui.d.ts +1 -1
  81. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  82. package/lib/helpers/for-backend/helpers-dependencies.backend.js +1 -2
  83. package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
  84. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +16 -8
  85. package/lib/helpers/for-backend/helpers-file-folders.backend.js +156 -65
  86. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  87. package/lib/helpers/for-backend/helpers-git.backend.d.ts +13 -0
  88. package/lib/helpers/for-backend/helpers-git.backend.js +93 -11
  89. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  90. package/lib/helpers/for-backend/helpers-process.backend.js +3 -1
  91. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  92. package/lib/helpers/for-browser/angular.helper.js +3 -3
  93. package/lib/models.d.ts +7 -1
  94. package/lib/old/base-component.js +3 -3
  95. package/lib/old/base-formly-component.js +3 -3
  96. package/lib/old/dual-component-ctrl.js +3 -3
  97. package/package.json +4 -4
  98. package/tmp-environment.json +37 -36
  99. package/websql/esm2022/lib/base/base-git.mjs +48 -5
  100. package/websql/esm2022/lib/base/base-library-build.mjs +27 -12
  101. package/websql/esm2022/lib/base/base-linked-projects.mjs +14 -3
  102. package/websql/esm2022/lib/base/base-npm-helpers.mjs +41 -2
  103. package/websql/esm2022/lib/base/base-project-resolver.mjs +10 -1
  104. package/websql/esm2022/lib/base/base-project.mjs +80 -18
  105. package/websql/esm2022/lib/base/base-release-process.mjs +204 -0
  106. package/websql/esm2022/lib/base/base-vscode.mjs +66 -0
  107. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  108. package/websql/esm2022/lib/base/linked-project.mjs +2 -7
  109. package/websql/esm2022/lib/models.mjs +1 -1
  110. package/websql/fesm2022/tnp-helpers.mjs +213 -40
  111. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  112. package/websql/lib/base/base-git.d.ts +17 -0
  113. package/websql/lib/base/base-library-build.d.ts +2 -1
  114. package/websql/lib/base/base-npm-helpers.d.ts +6 -1
  115. package/websql/lib/base/base-project-resolver.d.ts +9 -8
  116. package/websql/lib/base/base-project.d.ts +13 -5
  117. package/websql/lib/base/base-release-process.d.ts +40 -0
  118. package/websql/lib/base/base-vscode.d.ts +6 -0
  119. package/websql/lib/base/core-project.d.ts +8 -0
  120. package/websql/lib/models.d.ts +7 -1
@@ -1,5 +1,5 @@
1
1
  import * as core from 'tnp-core/browser';
2
- import { _, CoreHelpers, path, crossPlatformPath } from 'tnp-core/browser';
2
+ import { _, CoreHelpers, crossPlatformPath, path } from 'tnp-core/browser';
3
3
  import { Subject } from 'rxjs';
4
4
  import * as fuzzy from 'fuzzy';
5
5
  import { CLASS } from 'typescript-class-helpers/browser';
@@ -1302,6 +1302,15 @@ class BaseProjectResolver {
1302
1302
  /* */
1303
1303
  /* */
1304
1304
  /* */
1305
+ /* */
1306
+ /* */
1307
+ /* */
1308
+ /* */
1309
+ /* */
1310
+ /* */
1311
+ return (void 0);
1312
+ }
1313
+ allProjectsFromFolder(folderLocation) {
1305
1314
  /* */
1306
1315
  /* */
1307
1316
  /* */
@@ -1353,12 +1362,29 @@ class BaseProject {
1353
1362
  get globalCache() {
1354
1363
  return BaseProject.cache;
1355
1364
  }
1365
+ get location() {
1366
+ return this.__location;
1367
+ }
1368
+ set location(v) {
1369
+ this.__location = crossPlatformPath(v);
1370
+ }
1356
1371
  // @ts-ignore
1357
1372
  constructor(
1358
1373
  /**
1359
1374
  * doesn't need to be real path -> can be link
1360
1375
  */
1361
1376
  location) {
1377
+ this.cache = {};
1378
+ this.type = 'unknow';
1379
+ this.toString = () => {
1380
+ return `${this.name}=>${this.location}`;
1381
+ };
1382
+ this.location = location;
1383
+ /* */
1384
+ /* */
1385
+ /* */
1386
+ /* */
1387
+ /* */
1362
1388
  /* */
1363
1389
  /* */
1364
1390
  /* */
@@ -1373,12 +1399,6 @@ class BaseProject {
1373
1399
  /* */
1374
1400
  /* */
1375
1401
  /* */
1376
- this.location = location;
1377
- this.cache = {};
1378
- this.type = 'unknow';
1379
- this.toString = () => {
1380
- return `${this.name}=>${this.location}`;
1381
- };
1382
1402
  }
1383
1403
  get isMonorepo() {
1384
1404
  return false;
@@ -1558,8 +1578,28 @@ class BaseProject {
1558
1578
  /* */
1559
1579
  /* */
1560
1580
  /* */
1581
+ /* */
1582
+ /* */
1583
+ /* */
1584
+ /* */
1585
+ /* */
1586
+ /* */
1587
+ /* */
1588
+ /* */
1561
1589
  return (void 0);
1562
1590
  }
1591
+ checkAndBoldenPath(fullPath) {
1592
+ const parts = fullPath.split('/');
1593
+ const result = parts.map((part, index) => {
1594
+ const pathTocheck = parts.slice(0, index + 1).join('/');
1595
+ /* */
1596
+ /* */
1597
+ /* */
1598
+ /* */
1599
+ return part;
1600
+ });
1601
+ return result.join('/');
1602
+ }
1563
1603
  /**
1564
1604
  * same has project.hasFile();
1565
1605
  */
@@ -1872,6 +1912,29 @@ class BaseProject {
1872
1912
  /* */
1873
1913
  /* */
1874
1914
  }
1915
+ setValueToJSON(relativePath, lodashGetPath, value) {
1916
+ /* */
1917
+ /* */
1918
+ return (void 0);
1919
+ }
1920
+ getValueFromJSON(relativePath, lodashGetPath, defaultValue = void 0) {
1921
+ /* */
1922
+ /* */
1923
+ /* */
1924
+ /* */
1925
+ /* */
1926
+ /* */
1927
+ return (void 0);
1928
+ }
1929
+ getValueFromJSONC(relativePath, lodashGetPath, defaultValue = void 0) {
1930
+ /* */
1931
+ /* */
1932
+ /* */
1933
+ /* */
1934
+ /* */
1935
+ /* */
1936
+ return (void 0);
1937
+ }
1875
1938
  writeFile(relativePath, content) {
1876
1939
  /* */
1877
1940
  /* */
@@ -1944,6 +2007,9 @@ class BaseProject {
1944
2007
  async build(buildOptions) {
1945
2008
  throw new Error('TODO IMPLEMENT');
1946
2009
  }
2010
+ async release(releaseOptions) {
2011
+ throw new Error('TODO IMPLEMENT');
2012
+ }
1947
2013
  /**
1948
2014
  * lint porject
1949
2015
  */
@@ -1974,7 +2040,12 @@ ${proj?.children.map(c => '+' + c.genericName).join('\n')}
1974
2040
  linked porject prefix: "${this.linkedProjects.linkedProjectsPrefix}"
1975
2041
 
1976
2042
  linked projects from json (${this.linkedProjects.linkedProjects?.length || 0}):
1977
- ${(this.linkedProjects.linkedProjects || []).map(c => '- ' + c.relativeClonePath).join('\n')}
2043
+ ${(this.linkedProjects.linkedProjects || [])
2044
+ .map(c => {
2045
+ const proj = this.ins.From(this.pathFor(c.relativeClonePath));
2046
+ return '- ' + proj ? proj.genericName : c.relativeClonePath;
2047
+ })
2048
+ .join('\n')}
1978
2049
 
1979
2050
  `);
1980
2051
  }
@@ -2115,6 +2186,11 @@ class BaseLibraryBuild extends BaseFeatureForProject {
2115
2186
  /* */
2116
2187
  /* */
2117
2188
  /* */
2189
+ /* */
2190
+ /* */
2191
+ return (void 0);
2192
+ }
2193
+ async selectLibraries({ watch, watchBuildSupported, }) {
2118
2194
  /* */
2119
2195
  /* */
2120
2196
  /* */
@@ -2140,7 +2216,10 @@ class BaseLibraryBuild extends BaseFeatureForProject {
2140
2216
  /* */
2141
2217
  return (void 0);
2142
2218
  }
2143
- async selectLibraries({ watch, watchBuildSupported, }) {
2219
+ /**
2220
+ * Angular library build
2221
+ */
2222
+ async buildLibraries({ watch = false, strategy, buildType, copylink_to_node_modules, } = {}) {
2144
2223
  /* */
2145
2224
  /* */
2146
2225
  /* */
@@ -2164,12 +2243,6 @@ class BaseLibraryBuild extends BaseFeatureForProject {
2164
2243
  /* */
2165
2244
  /* */
2166
2245
  /* */
2167
- return (void 0);
2168
- }
2169
- /**
2170
- * Angular library build
2171
- */
2172
- async buildLibraries({ watch = false, strategy, buildType, } = {}) {
2173
2246
  /* */
2174
2247
  /* */
2175
2248
  /* */
@@ -2321,6 +2394,8 @@ class BaseLibraryBuild extends BaseFeatureForProject {
2321
2394
  /* */
2322
2395
  /* */
2323
2396
  /* */
2397
+ }
2398
+ getLibraryBuildComamnd(options) {
2324
2399
  /* */
2325
2400
  /* */
2326
2401
  /* */
@@ -2335,8 +2410,22 @@ class BaseLibraryBuild extends BaseFeatureForProject {
2335
2410
  /* */
2336
2411
  /* */
2337
2412
  /* */
2413
+ return (void 0);
2338
2414
  }
2339
- getLibraryBuildComamnd(options) {
2415
+ get getLibraryBuildSuccessComamnd() {
2416
+ /* */
2417
+ /* */
2418
+ /* */
2419
+ /* */
2420
+ /* */
2421
+ /* */
2422
+ /* */
2423
+ /* */
2424
+ /* */
2425
+ return (void 0);
2426
+ }
2427
+ async selectCopytoProjects() {
2428
+ /* */
2340
2429
  /* */
2341
2430
  /* */
2342
2431
  /* */
@@ -2351,9 +2440,6 @@ class BaseLibraryBuild extends BaseFeatureForProject {
2351
2440
  /* */
2352
2441
  /* */
2353
2442
  /* */
2354
- return (void 0);
2355
- }
2356
- get getLibraryBuildSuccessComamnd() {
2357
2443
  /* */
2358
2444
  /* */
2359
2445
  /* */
@@ -2385,6 +2471,39 @@ class BaseNpmHelpers extends BaseFeatureForProject {
2385
2471
  get version() {
2386
2472
  return this.packageJSON?.version;
2387
2473
  }
2474
+ get versionWithPatchPlusOne() {
2475
+ const ver = this.version.split('.');
2476
+ if (ver.length > 0) {
2477
+ ver[ver.length - 1] = (parseInt(_.last(ver)) + 1).toString();
2478
+ }
2479
+ return ver.join('.');
2480
+ }
2481
+ get versionWithMinorPlusOneAndPatchZero() {
2482
+ const ver = this.version.split('.');
2483
+ if (ver.length > 1) {
2484
+ ver[1] = (parseInt(ver[1]) + 1).toString();
2485
+ for (let index = 2; index < ver.length; index++) {
2486
+ ver[index] = '0';
2487
+ }
2488
+ }
2489
+ else {
2490
+ Helpers.warn(`[npm-project] something went wrong with bumping minor version`);
2491
+ }
2492
+ return ver.join('.');
2493
+ }
2494
+ get versionWithMajorPlusOneAndMinorZeroAndPatchZero() {
2495
+ const ver = this.version.split('.');
2496
+ if (ver.length > 0) {
2497
+ ver[0] = (parseInt(_.first(ver)) + 1).toString();
2498
+ for (let index = 1; index < ver.length; index++) {
2499
+ ver[index] = '0';
2500
+ }
2501
+ }
2502
+ else {
2503
+ Helpers.warn(`[npm-project] something went wrong with bumping major version`);
2504
+ }
2505
+ return ver.join('.');
2506
+ }
2388
2507
  /**
2389
2508
  * Major Version from package.json
2390
2509
  */
@@ -2650,7 +2769,12 @@ class BaseNpmHelpers extends BaseFeatureForProject {
2650
2769
  .map(k => `--${k} ${additionalArguments[k]}`)
2651
2770
  .join(' ');
2652
2771
  }
2653
- return this.project.run(`npm run ${taskName} ${additionalArguments ? ' -- ' + additionalArguments : ''}`, { output: true });
2772
+ const command = `npm run ${taskName} ${additionalArguments ? ' -- ' + additionalArguments : ''}`;
2773
+ Helpers.info(`Starting npm task: "${command}"`);
2774
+ return this.project.run(command, {
2775
+ output: true,
2776
+ biggerBuffer: true,
2777
+ });
2654
2778
  }
2655
2779
  async prepareCommand(optiosn) {
2656
2780
  let { pkg, remove, silent, useYarn, force, removeYarnOrPackageJsonLock, generateYarnOrPackageJsonLock, ignoreOptional, } = optiosn || {};
@@ -2705,8 +2829,17 @@ class BaseLinkedProjects extends BaseFeatureForProject {
2705
2829
  }
2706
2830
  const nearsetProj = this.project.ins.nearestTo(crossPlatformPath([this.project.location, '..']));
2707
2831
  const linkedPorj = nearsetProj?.linkedProjects?.linkedProjects.find(l => {
2708
- return (this.project.location ===
2709
- crossPlatformPath([nearsetProj.location, l.relativeClonePath]));
2832
+ const copareTo = crossPlatformPath([
2833
+ nearsetProj.location,
2834
+ l.relativeClonePath,
2835
+ ]);
2836
+ if (this.project.location === copareTo) {
2837
+ return true;
2838
+ }
2839
+ if (l.remoteUrl() === this.project.git.originURL) {
2840
+ return true;
2841
+ }
2842
+ return false;
2710
2843
  });
2711
2844
  if (!linkedPorj || !linkedPorj.internalRealtiveProjectPath) {
2712
2845
  return;
@@ -2971,6 +3104,8 @@ class BaseLinkedProjects extends BaseFeatureForProject {
2971
3104
  /* */
2972
3105
  /* */
2973
3106
  /* */
3107
+ /* */
3108
+ /* */
2974
3109
  return (void 0);
2975
3110
  }
2976
3111
  }
@@ -3174,6 +3309,19 @@ class BaseGit extends BaseFeatureForProject {
3174
3309
  /* */
3175
3310
  return (void 0);
3176
3311
  }
3312
+ async getCommitMessageByIndex(index) {
3313
+ /* */
3314
+ /* */
3315
+ /* */
3316
+ /* */
3317
+ /* */
3318
+ return (void 0);
3319
+ }
3320
+ async getCommitHashByIndex(index) {
3321
+ /* */
3322
+ /* */
3323
+ return (void 0);
3324
+ }
3177
3325
  penultimateCommitHash() {
3178
3326
  /* */
3179
3327
  /* */
@@ -3320,6 +3468,33 @@ class BaseGit extends BaseFeatureForProject {
3320
3468
  /* */
3321
3469
  return (void 0);
3322
3470
  }
3471
+ /**
3472
+ * This is only for push/pull process
3473
+ *
3474
+ * There are 2 types of projects:
3475
+ * - with linked-projects.json
3476
+ * - with children from external folder
3477
+ *
3478
+ * projects that are children of this project (with its own git repo)
3479
+ */
3480
+ get gitChildren() {
3481
+ let childrenRepos = [];
3482
+ if (this.project.linkedProjects.linkedProjects.length > 0) {
3483
+ childrenRepos = this.project.linkedProjects.linkedProjects
3484
+ .map(c => {
3485
+ return this.project.ins.From([
3486
+ this.project.location,
3487
+ c.relativeClonePath,
3488
+ ]);
3489
+ })
3490
+ .filter(f => !!f);
3491
+ }
3492
+ else {
3493
+ childrenRepos = this.project.children;
3494
+ }
3495
+ childrenRepos = childrenRepos.filter(f => f.git.isInsideGitRepo && f.git.isGitRoot);
3496
+ return childrenRepos;
3497
+ }
3323
3498
  async pullProcess(cloneChildren = false) {
3324
3499
  /* */
3325
3500
  /* */
@@ -3348,9 +3523,6 @@ class BaseGit extends BaseFeatureForProject {
3348
3523
  /* */
3349
3524
  /* */
3350
3525
  /* */
3351
- /* */
3352
- /* */
3353
- /* */
3354
3526
  return (void 0);
3355
3527
  }
3356
3528
  async pushProcess(options = {}) {
@@ -3496,7 +3668,6 @@ class BaseGit extends BaseFeatureForProject {
3496
3668
  /* */
3497
3669
  /* */
3498
3670
  /* */
3499
- /* */
3500
3671
  return (void 0);
3501
3672
  }
3502
3673
  _beforeAnyActionOnGitRoot() {
@@ -3592,6 +3763,13 @@ class BaseGit extends BaseFeatureForProject {
3592
3763
  /* */
3593
3764
  return (void 0);
3594
3765
  }
3766
+ /**
3767
+ * This will prevent accidental branch change for firedev projects
3768
+ * @returns branch name
3769
+ */
3770
+ duringPushWarnIfProjectNotOnSpecyficDevBranch() {
3771
+ return void 0;
3772
+ }
3595
3773
  }
3596
3774
  ;
3597
3775
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-git.ts
@@ -4002,7 +4180,6 @@ class LinkedProject {
4002
4180
  /* */
4003
4181
  /* */
4004
4182
  /* */
4005
- /* */
4006
4183
  return (void 0);
4007
4184
  }
4008
4185
  /**
@@ -4021,15 +4198,11 @@ class LinkedProject {
4021
4198
  class LinkedPorjectsConfig {
4022
4199
  static from(options) {
4023
4200
  options = options || {};
4024
- options.projects = (options.projects || [])
4025
- .map(linkedProjOrname => {
4201
+ options.projects = (options.projects || []).map(linkedProjOrname => {
4026
4202
  if (_.isString(linkedProjOrname)) {
4027
4203
  return LinkedProject.fromName(linkedProjOrname);
4028
4204
  }
4029
4205
  return LinkedProject.from(linkedProjOrname);
4030
- })
4031
- .sort((a, b) => {
4032
- return (a.relativeClonePath || '').localeCompare((b.relativeClonePath || ''));
4033
4206
  });
4034
4207
  return _.merge(new LinkedPorjectsConfig(), _.cloneDeep(options));
4035
4208
  }