keycloakify 10.0.0-rc.10 → 10.0.0-rc.12

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 (209) hide show
  1. package/bin/246.index.js +466 -0
  2. package/bin/420.index.js +508 -0
  3. package/bin/509.index.js +438 -0
  4. package/bin/772.index.js +1524 -0
  5. package/bin/copy-keycloak-resources-to-public.d.ts +4 -0
  6. package/bin/copy-keycloak-resources-to-public.js +72 -0
  7. package/bin/copy-keycloak-resources-to-public.js.map +1 -0
  8. package/bin/download-builtin-keycloak-theme.d.ts +4 -0
  9. package/bin/download-builtin-keycloak-theme.js +76 -0
  10. package/bin/download-builtin-keycloak-theme.js.map +1 -0
  11. package/bin/eject-keycloak-page.d.ts +5 -0
  12. package/bin/eject-keycloak-page.js +201 -0
  13. package/bin/eject-keycloak-page.js.map +1 -0
  14. package/bin/initialize-email-theme.d.ts +4 -0
  15. package/bin/initialize-email-theme.js +121 -0
  16. package/bin/initialize-email-theme.js.map +1 -0
  17. package/bin/keycloakify/buildJars/buildJar.d.ts +15 -0
  18. package/bin/keycloakify/buildJars/buildJar.js +213 -0
  19. package/bin/keycloakify/buildJars/buildJar.js.map +1 -0
  20. package/bin/keycloakify/buildJars/buildJars.d.ts +7 -0
  21. package/bin/keycloakify/buildJars/buildJars.js +104 -0
  22. package/bin/keycloakify/buildJars/buildJars.js.map +1 -0
  23. package/bin/keycloakify/buildJars/extensionVersions.d.ts +12 -0
  24. package/bin/keycloakify/buildJars/extensionVersions.js +7 -0
  25. package/bin/keycloakify/buildJars/extensionVersions.js.map +1 -0
  26. package/bin/keycloakify/buildJars/generatePom.d.ts +13 -0
  27. package/bin/keycloakify/buildJars/generatePom.js +95 -0
  28. package/bin/keycloakify/buildJars/generatePom.js.map +1 -0
  29. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +7 -0
  30. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +57 -0
  31. package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +1 -0
  32. package/bin/keycloakify/buildJars/index.d.ts +1 -0
  33. package/bin/keycloakify/buildJars/index.js +18 -0
  34. package/bin/keycloakify/buildJars/index.js.map +1 -0
  35. package/bin/keycloakify/generateFtl/generateFtl.d.ts +23 -0
  36. package/bin/keycloakify/generateFtl/generateFtl.js +170 -0
  37. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -0
  38. package/bin/keycloakify/generateFtl/index.d.ts +1 -0
  39. package/bin/keycloakify/generateFtl/index.js +18 -0
  40. package/bin/keycloakify/generateFtl/index.js.map +1 -0
  41. package/bin/keycloakify/generateSrcMainResources/bringInAccountV1.d.ts +9 -0
  42. package/bin/keycloakify/generateSrcMainResources/bringInAccountV1.js +153 -0
  43. package/bin/keycloakify/generateSrcMainResources/bringInAccountV1.js.map +1 -0
  44. package/bin/keycloakify/generateSrcMainResources/generateMessageProperties.d.ts +8 -0
  45. package/bin/keycloakify/generateSrcMainResources/generateMessageProperties.js +271 -0
  46. package/bin/keycloakify/generateSrcMainResources/generateMessageProperties.js.map +1 -0
  47. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.d.ts +7 -0
  48. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.js +109 -0
  49. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.js.map +1 -0
  50. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.d.ts +17 -0
  51. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.js +341 -0
  52. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.js.map +1 -0
  53. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.d.ts +8 -0
  54. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.js +47 -0
  55. package/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.js.map +1 -0
  56. package/bin/keycloakify/generateSrcMainResources/index.d.ts +1 -0
  57. package/bin/keycloakify/generateSrcMainResources/index.js +18 -0
  58. package/bin/keycloakify/generateSrcMainResources/index.js.map +1 -0
  59. package/bin/keycloakify/generateSrcMainResources/readExtraPageNames.d.ts +5 -0
  60. package/bin/keycloakify/generateSrcMainResources/readExtraPageNames.js +105 -0
  61. package/bin/keycloakify/generateSrcMainResources/readExtraPageNames.js.map +1 -0
  62. package/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.d.ts +6 -0
  63. package/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.js +142 -0
  64. package/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.js.map +1 -0
  65. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +13 -0
  66. package/bin/keycloakify/generateStartKeycloakTestingContainer.js +86 -0
  67. package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -0
  68. package/bin/keycloakify/index.d.ts +1 -0
  69. package/bin/keycloakify/index.js +18 -0
  70. package/bin/keycloakify/index.js.map +1 -0
  71. package/bin/keycloakify/keycloakify.d.ts +4 -0
  72. package/bin/keycloakify/keycloakify.js +152 -0
  73. package/bin/keycloakify/keycloakify.js.map +1 -0
  74. package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +15 -0
  75. package/bin/keycloakify/replacers/replaceImportsInCssCode.js +88 -0
  76. package/bin/keycloakify/replacers/replaceImportsInCssCode.js.map +1 -0
  77. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +9 -0
  78. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js +38 -0
  79. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js.map +1 -0
  80. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.d.ts +1 -0
  81. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js +18 -0
  82. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js.map +1 -0
  83. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.d.ts +12 -0
  84. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js +70 -0
  85. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js.map +1 -0
  86. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.d.ts +13 -0
  87. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js +95 -0
  88. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js.map +1 -0
  89. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.d.ts +12 -0
  90. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js +103 -0
  91. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js.map +1 -0
  92. package/bin/main.d.ts +4 -0
  93. package/bin/main.js +9332 -6975
  94. package/bin/main.js.map +1 -0
  95. package/bin/main.original.js +287 -0
  96. package/bin/shared/KeycloakVersionRange.d.ts +5 -0
  97. package/bin/shared/KeycloakVersionRange.js +3 -0
  98. package/bin/shared/KeycloakVersionRange.js.map +1 -0
  99. package/bin/shared/buildOptions.d.ts +40 -0
  100. package/bin/shared/buildOptions.js +214 -0
  101. package/bin/shared/buildOptions.js.map +1 -0
  102. package/bin/shared/constants.d.ts +16 -0
  103. package/bin/shared/constants.js +60 -0
  104. package/bin/shared/constants.js.map +1 -0
  105. package/bin/shared/copyKeycloakResourcesToPublic.d.ts +8 -0
  106. package/bin/shared/copyKeycloakResourcesToPublic.js +177 -0
  107. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -0
  108. package/bin/shared/downloadAndUnzip.d.ts +16 -0
  109. package/bin/shared/downloadAndUnzip.js +255 -0
  110. package/bin/shared/downloadAndUnzip.js.map +1 -0
  111. package/bin/shared/downloadBuiltinKeycloakTheme.d.ts +9 -0
  112. package/bin/shared/downloadBuiltinKeycloakTheme.js +316 -0
  113. package/bin/shared/downloadBuiltinKeycloakTheme.js.map +1 -0
  114. package/bin/shared/downloadKeycloakStaticResources.d.ts +11 -0
  115. package/bin/shared/downloadKeycloakStaticResources.js +102 -0
  116. package/bin/shared/downloadKeycloakStaticResources.js.map +1 -0
  117. package/bin/shared/getJarFileBasename.d.ts +6 -0
  118. package/bin/shared/getJarFileBasename.js +10 -0
  119. package/bin/shared/getJarFileBasename.js.map +1 -0
  120. package/bin/shared/getThemeSrcDirPath.d.ts +6 -0
  121. package/bin/shared/getThemeSrcDirPath.js +123 -0
  122. package/bin/shared/getThemeSrcDirPath.js.map +1 -0
  123. package/bin/shared/metaInfKeycloakThemes.d.ts +17 -0
  124. package/bin/shared/metaInfKeycloakThemes.js +51 -0
  125. package/bin/shared/metaInfKeycloakThemes.js.map +1 -0
  126. package/bin/shared/promptKeycloakVersion.d.ts +6 -0
  127. package/bin/shared/promptKeycloakVersion.js +159 -0
  128. package/bin/shared/promptKeycloakVersion.js.map +1 -0
  129. package/bin/start-keycloak.d.ts +8 -0
  130. package/bin/start-keycloak.js +287 -0
  131. package/bin/start-keycloak.js.map +1 -0
  132. package/bin/tools/OptionalIfCanBeUndefined.d.ts +14 -0
  133. package/bin/tools/OptionalIfCanBeUndefined.js +3 -0
  134. package/bin/tools/OptionalIfCanBeUndefined.js.map +1 -0
  135. package/bin/tools/SemVer.d.ts +26 -0
  136. package/bin/tools/SemVer.js +119 -0
  137. package/bin/tools/SemVer.js.map +1 -0
  138. package/bin/tools/String.prototype.replaceAll.d.ts +1 -0
  139. package/bin/tools/String.prototype.replaceAll.js +29 -0
  140. package/bin/tools/String.prototype.replaceAll.js.map +1 -0
  141. package/bin/tools/crawl.d.ts +5 -0
  142. package/bin/tools/crawl.js +74 -0
  143. package/bin/tools/crawl.js.map +1 -0
  144. package/bin/tools/crc32.d.ts +9 -0
  145. package/bin/tools/crc32.js +64 -0
  146. package/bin/tools/crc32.js.map +1 -0
  147. package/bin/tools/deflate.d.ts +24 -0
  148. package/bin/tools/deflate.js +164 -0
  149. package/bin/tools/deflate.js.map +1 -0
  150. package/bin/tools/fetchProxyOptions.d.ts +5 -0
  151. package/bin/tools/fetchProxyOptions.js +172 -0
  152. package/bin/tools/fetchProxyOptions.js.map +1 -0
  153. package/bin/tools/fs.existsAsync.d.ts +1 -0
  154. package/bin/tools/fs.existsAsync.js +86 -0
  155. package/bin/tools/fs.existsAsync.js.map +1 -0
  156. package/bin/tools/fs.rm.d.ts +8 -0
  157. package/bin/tools/fs.rm.js +151 -0
  158. package/bin/tools/fs.rm.js.map +1 -0
  159. package/bin/tools/fs.rmSync.d.ts +8 -0
  160. package/bin/tools/fs.rmSync.js +58 -0
  161. package/bin/tools/fs.rmSync.js.map +1 -0
  162. package/bin/tools/getAbsoluteAndInOsFormatPath.d.ts +4 -0
  163. package/bin/tools/getAbsoluteAndInOsFormatPath.js +44 -0
  164. package/bin/tools/getAbsoluteAndInOsFormatPath.js.map +1 -0
  165. package/bin/tools/getNpmWorkspaceRootDirPath.d.ts +5 -0
  166. package/bin/tools/getNpmWorkspaceRootDirPath.js +74 -0
  167. package/bin/tools/getNpmWorkspaceRootDirPath.js.map +1 -0
  168. package/bin/tools/getThisCodebaseRootDirPath.d.ts +1 -0
  169. package/bin/tools/getThisCodebaseRootDirPath.js +43 -0
  170. package/bin/tools/getThisCodebaseRootDirPath.js.map +1 -0
  171. package/bin/tools/isInside.d.ts +4 -0
  172. package/bin/tools/isInside.js +10 -0
  173. package/bin/tools/isInside.js.map +1 -0
  174. package/bin/tools/kebabCaseToSnakeCase.d.ts +1 -0
  175. package/bin/tools/kebabCaseToSnakeCase.js +35 -0
  176. package/bin/tools/kebabCaseToSnakeCase.js.map +1 -0
  177. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.d.ts +14 -0
  178. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +116 -0
  179. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +1 -0
  180. package/bin/tools/octokit-addons/listTags.d.ts +13 -0
  181. package/bin/tools/octokit-addons/listTags.js +155 -0
  182. package/bin/tools/octokit-addons/listTags.js.map +1 -0
  183. package/bin/tools/partitionPromiseSettledResults.d.ts +2 -0
  184. package/bin/tools/partitionPromiseSettledResults.js +41 -0
  185. package/bin/tools/partitionPromiseSettledResults.js.map +1 -0
  186. package/bin/tools/readThisNpmPackageVersion.d.ts +1 -0
  187. package/bin/tools/readThisNpmPackageVersion.js +37 -0
  188. package/bin/tools/readThisNpmPackageVersion.js.map +1 -0
  189. package/bin/tools/tee.d.ts +3 -0
  190. package/bin/tools/tee.js +37 -0
  191. package/bin/tools/tee.js.map +1 -0
  192. package/bin/tools/transformCodebase.d.ts +20 -0
  193. package/bin/tools/transformCodebase.js +97 -0
  194. package/bin/tools/transformCodebase.js.map +1 -0
  195. package/bin/tools/trimIndent.d.ts +5 -0
  196. package/bin/tools/trimIndent.js +82 -0
  197. package/bin/tools/trimIndent.js.map +1 -0
  198. package/bin/tools/unzip.d.ts +2 -0
  199. package/bin/tools/unzip.js +274 -0
  200. package/bin/tools/unzip.js.map +1 -0
  201. package/bin/tsconfig.tsbuildinfo +1 -0
  202. package/package.json +9732 -680
  203. package/tsconfig.tsbuildinfo +1 -0
  204. package/vite-plugin/index.d.ts +1 -0
  205. package/vite-plugin/index.js +50866 -0
  206. package/vite-plugin/index.original.js +17 -0
  207. package/vite-plugin/tsconfig.tsbuildinfo +1 -0
  208. package/vite-plugin/vite-plugin.d.ts +5 -0
  209. package/vite-plugin/vite-plugin.js +136 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __values = (this && this.__values) || function(o) {
26
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
27
+ if (m) return m.call(o);
28
+ if (o && typeof o.length === "number") return {
29
+ next: function () {
30
+ if (o && i >= o.length) o = void 0;
31
+ return { value: o && o[i++], done: !o };
32
+ }
33
+ };
34
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.transformCodebase = void 0;
38
+ var fs = __importStar(require("fs"));
39
+ var path = __importStar(require("path"));
40
+ var crawl_1 = require("./crawl");
41
+ var fs_rmSync_1 = require("../tools/fs.rmSync");
42
+ /**
43
+ * Apply a transformation function to every file of directory
44
+ * If source and destination are the same this function can be used to apply the transformation in place
45
+ * like filtering out some files or modifying them.
46
+ * */
47
+ function transformCodebase(params) {
48
+ var e_1, _a;
49
+ var srcDirPath = params.srcDirPath, transformSourceCode = params.transformSourceCode;
50
+ var isTargetSameAsSource = path.relative(srcDirPath, params.destDirPath) === "";
51
+ var destDirPath = isTargetSameAsSource ? path.join(srcDirPath, "..", "tmp_xOsPdkPsTdzPs34sOkHs") : params.destDirPath;
52
+ fs.mkdirSync(destDirPath, {
53
+ "recursive": true
54
+ });
55
+ try {
56
+ for (var _b = __values((0, crawl_1.crawl)({ "dirPath": srcDirPath, "returnedPathsType": "relative to dirPath" })), _c = _b.next(); !_c.done; _c = _b.next()) {
57
+ var fileRelativePath = _c.value;
58
+ var filePath = path.join(srcDirPath, fileRelativePath);
59
+ var destFilePath = path.join(destDirPath, fileRelativePath);
60
+ // NOTE: Optimization, if we don't need to transform the file, just copy
61
+ // it using the lower level implementation.
62
+ if (transformSourceCode === undefined) {
63
+ fs.mkdirSync(path.dirname(destFilePath), {
64
+ "recursive": true
65
+ });
66
+ fs.copyFileSync(filePath, destFilePath);
67
+ continue;
68
+ }
69
+ var transformSourceCodeResult = transformSourceCode({
70
+ "sourceCode": fs.readFileSync(filePath),
71
+ filePath: filePath,
72
+ fileRelativePath: fileRelativePath
73
+ });
74
+ if (transformSourceCodeResult === undefined) {
75
+ continue;
76
+ }
77
+ fs.mkdirSync(path.dirname(destFilePath), {
78
+ "recursive": true
79
+ });
80
+ var newFileName = transformSourceCodeResult.newFileName, modifiedSourceCode = transformSourceCodeResult.modifiedSourceCode;
81
+ fs.writeFileSync(path.join(path.dirname(destFilePath), newFileName !== null && newFileName !== void 0 ? newFileName : path.basename(destFilePath)), modifiedSourceCode);
82
+ }
83
+ }
84
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
85
+ finally {
86
+ try {
87
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
88
+ }
89
+ finally { if (e_1) throw e_1.error; }
90
+ }
91
+ if (isTargetSameAsSource) {
92
+ (0, fs_rmSync_1.rmSync)(srcDirPath, { "recursive": true });
93
+ fs.renameSync(destDirPath, srcDirPath);
94
+ }
95
+ }
96
+ exports.transformCodebase = transformCodebase;
97
+ //# sourceMappingURL=transformCodebase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformCodebase.js","sourceRoot":"","sources":["../../src/bin/tools/transformCodebase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,yCAA6B;AAC7B,iCAAgC;AAChC,gDAA4C;AAS5C;;;;KAIK;AACL,SAAgB,iBAAiB,CAAC,MAA8F;;IACpH,IAAA,UAAU,GAA0B,MAAM,WAAhC,EAAE,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IAEnD,IAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAElF,IAAM,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IAExH,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE;QACtB,WAAW,EAAE,IAAI;KACpB,CAAC,CAAC;;QAEH,KAA+B,IAAA,KAAA,SAAA,IAAA,aAAK,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAAzG,IAAM,gBAAgB,WAAA;YACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACzD,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAE9D,wEAAwE;YACxE,2CAA2C;YAC3C,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACpC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;oBACrC,WAAW,EAAE,IAAI;iBACpB,CAAC,CAAC;gBAEH,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAExC,SAAS;YACb,CAAC;YAED,IAAM,yBAAyB,GAAG,mBAAmB,CAAC;gBAClD,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;gBACvC,QAAQ,UAAA;gBACR,gBAAgB,kBAAA;aACnB,CAAC,CAAC;YAEH,IAAI,yBAAyB,KAAK,SAAS,EAAE,CAAC;gBAC1C,SAAS;YACb,CAAC;YAED,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACrC,WAAW,EAAE,IAAI;aACpB,CAAC,CAAC;YAEK,IAAA,WAAW,GAAyB,yBAAyB,YAAlD,EAAE,kBAAkB,GAAK,yBAAyB,mBAA9B,CAA+B;YAEtE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC5H,CAAC;;;;;;;;;IAED,IAAI,oBAAoB,EAAE,CAAC;QACvB,IAAA,kBAAM,EAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;AACL,CAAC;AAnDD,8CAmDC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shift all lines left by the *smallest* indentation level,
3
+ * and remove initial newline and all trailing spaces.
4
+ */
5
+ export default function trimIndent(strings: TemplateStringsArray, ...args: any[]): string;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ /**
29
+ * Concatenate the string fragments and interpolated values
30
+ * to get a single string.
31
+ */
32
+ function populateTemplate(strings) {
33
+ var _a, _b;
34
+ var args = [];
35
+ for (var _i = 1; _i < arguments.length; _i++) {
36
+ args[_i - 1] = arguments[_i];
37
+ }
38
+ var chunks = [];
39
+ for (var i = 0; i < strings.length; i++) {
40
+ var lastStringLineLength = 0;
41
+ if (strings[i]) {
42
+ chunks.push(strings[i]);
43
+ // remember last indent of the string portion
44
+ lastStringLineLength = (_b = (_a = strings[i].split("\n").slice(-1)[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
45
+ }
46
+ if (args[i]) {
47
+ // if the interpolation value has newlines, indent the interpolation values
48
+ // using the last known string indent
49
+ var chunk = String(args[i]).replace(/([\r?\n])/g, "$1" + " ".repeat(lastStringLineLength));
50
+ chunks.push(chunk);
51
+ }
52
+ }
53
+ return chunks.join("");
54
+ }
55
+ /**
56
+ * Shift all lines left by the *smallest* indentation level,
57
+ * and remove initial newline and all trailing spaces.
58
+ */
59
+ function trimIndent(strings) {
60
+ var _a, _b, _c;
61
+ var args = [];
62
+ for (var _i = 1; _i < arguments.length; _i++) {
63
+ args[_i - 1] = arguments[_i];
64
+ }
65
+ // Remove initial and final newlines
66
+ var string = populateTemplate.apply(void 0, __spreadArray([strings], __read(args), false)).replace(/^[\r\n]/, "")
67
+ .replace(/\r?\n *$/, "");
68
+ var dents = (_c = (_b = (_a = string
69
+ .match(/^([ \t])+/gm)) === null || _a === void 0 ? void 0 : _a.filter(function (s) { return /^\s+$/.test(s); })) === null || _b === void 0 ? void 0 : _b.map(function (s) { return s.length; })) !== null && _c !== void 0 ? _c : [];
70
+ // No dents? no change required
71
+ if (!dents || dents.length == 0)
72
+ return string;
73
+ var minDent = Math.min.apply(Math, __spreadArray([], __read(dents), false));
74
+ // The min indentation is 0, no change needed
75
+ if (!minDent)
76
+ return string;
77
+ var re = new RegExp("^".concat(" ".repeat(minDent)), "gm");
78
+ var dedented = string.replace(re, "");
79
+ return dedented;
80
+ }
81
+ exports.default = trimIndent;
82
+ //# sourceMappingURL=trimIndent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trimIndent.js","sourceRoot":"","sources":["../../src/bin/tools/trimIndent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAA6B;;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IACvE,IAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,6CAA6C;YAC7C,oBAAoB,GAAG,MAAA,MAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACV,2EAA2E;YAC3E,qCAAqC;YACrC,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC7F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAwB,UAAU,CAAC,OAA6B;;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;IAC5E,oCAAoC;IACpC,IAAI,MAAM,GAAG,gBAAgB,8BAAC,OAAO,UAAK,IAAI,WACzC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAM,KAAK,GACP,MAAA,MAAA,MAAA,MAAM;SACD,KAAK,CAAC,aAAa,CAAC,0CACnB,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,0CAC5B,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,mCAAI,EAAE,CAAC;IACnC,+BAA+B;IAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,2BAAQ,KAAK,UAAC,CAAC;IACnC,6CAA6C;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC5B,IAAM,EAAE,GAAG,IAAI,MAAM,CAAC,WAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC;IACvD,IAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAlBD,6BAkBC"}
@@ -0,0 +1,2 @@
1
+ export declare function unzip(file: string, targetFolder: string, specificDirsToExtract?: string[]): Promise<void>;
2
+ export declare function zip(sourceFolder: string, targetZip: string): Promise<void>;
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __values = (this && this.__values) || function(o) {
39
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
+ if (m) return m.call(o);
41
+ if (o && typeof o.length === "number") return {
42
+ next: function () {
43
+ if (o && i >= o.length) o = void 0;
44
+ return { value: o && o[i++], done: !o };
45
+ }
46
+ };
47
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.zip = exports.unzip = void 0;
54
+ var promises_1 = __importDefault(require("node:fs/promises"));
55
+ var fs_1 = __importDefault(require("fs"));
56
+ var node_path_1 = __importDefault(require("node:path"));
57
+ var yauzl_1 = __importDefault(require("yauzl"));
58
+ var yazl_1 = __importDefault(require("yazl"));
59
+ var node_stream_1 = __importDefault(require("node:stream"));
60
+ var node_util_1 = require("node:util");
61
+ var pipeline = (0, node_util_1.promisify)(node_stream_1.default.pipeline);
62
+ function pathExists(path) {
63
+ return __awaiter(this, void 0, void 0, function () {
64
+ var error_1;
65
+ return __generator(this, function (_a) {
66
+ switch (_a.label) {
67
+ case 0:
68
+ _a.trys.push([0, 2, , 3]);
69
+ return [4 /*yield*/, promises_1.default.stat(path)];
70
+ case 1:
71
+ _a.sent();
72
+ return [2 /*return*/, true];
73
+ case 2:
74
+ error_1 = _a.sent();
75
+ if (error_1.code === "ENOENT") {
76
+ return [2 /*return*/, false];
77
+ }
78
+ throw error_1;
79
+ case 3: return [2 /*return*/];
80
+ }
81
+ });
82
+ });
83
+ }
84
+ // Handlings of non posix path is not implemented correctly
85
+ // it work by coincidence. Don't have the time to fix but it should be fixed.
86
+ function unzip(file, targetFolder, specificDirsToExtract) {
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ var _this = this;
89
+ return __generator(this, function (_a) {
90
+ specificDirsToExtract = specificDirsToExtract === null || specificDirsToExtract === void 0 ? void 0 : specificDirsToExtract.map(function (dirPath) {
91
+ if (!dirPath.endsWith("/") || !dirPath.endsWith("\\")) {
92
+ dirPath += "/";
93
+ }
94
+ return dirPath;
95
+ });
96
+ if (!targetFolder.endsWith("/") || !targetFolder.endsWith("\\")) {
97
+ targetFolder += "/";
98
+ }
99
+ if (!fs_1.default.existsSync(targetFolder)) {
100
+ fs_1.default.mkdirSync(targetFolder, { recursive: true });
101
+ }
102
+ return [2 /*return*/, new Promise(function (resolve, reject) {
103
+ yauzl_1.default.open(file, { lazyEntries: true }, function (err, zipfile) { return __awaiter(_this, void 0, void 0, function () {
104
+ var _this = this;
105
+ return __generator(this, function (_a) {
106
+ if (err) {
107
+ reject(err);
108
+ return [2 /*return*/];
109
+ }
110
+ zipfile.readEntry();
111
+ zipfile.on("entry", function (entry) { return __awaiter(_this, void 0, void 0, function () {
112
+ var dirPath, target;
113
+ var _this = this;
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ if (specificDirsToExtract !== undefined) {
118
+ dirPath = specificDirsToExtract.find(function (dirPath) { return entry.fileName.startsWith(dirPath); });
119
+ // Skip files outside of the unzipSubPath
120
+ if (dirPath === undefined) {
121
+ zipfile.readEntry();
122
+ return [2 /*return*/];
123
+ }
124
+ // Remove the unzipSubPath from the file name
125
+ entry.fileName = entry.fileName.substring(dirPath.length);
126
+ }
127
+ target = node_path_1.default.join(targetFolder, entry.fileName);
128
+ if (!/[\/\\]$/.test(target)) return [3 /*break*/, 2];
129
+ return [4 /*yield*/, promises_1.default.mkdir(target, { recursive: true })];
130
+ case 1:
131
+ _a.sent();
132
+ zipfile.readEntry();
133
+ return [2 /*return*/];
134
+ case 2: return [4 /*yield*/, pathExists(target)];
135
+ case 3:
136
+ // Skip existing files
137
+ if (_a.sent()) {
138
+ zipfile.readEntry();
139
+ return [2 /*return*/];
140
+ }
141
+ zipfile.openReadStream(entry, function (err, readStream) { return __awaiter(_this, void 0, void 0, function () {
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0:
145
+ if (err) {
146
+ reject(err);
147
+ return [2 /*return*/];
148
+ }
149
+ return [4 /*yield*/, promises_1.default.mkdir(node_path_1.default.dirname(target), { "recursive": true })];
150
+ case 1:
151
+ _a.sent();
152
+ return [4 /*yield*/, pipeline(readStream, fs_1.default.createWriteStream(target))];
153
+ case 2:
154
+ _a.sent();
155
+ zipfile.readEntry();
156
+ return [2 /*return*/];
157
+ }
158
+ });
159
+ }); });
160
+ return [2 /*return*/];
161
+ }
162
+ });
163
+ }); });
164
+ zipfile.once("end", function () {
165
+ zipfile.close();
166
+ resolve();
167
+ });
168
+ return [2 /*return*/];
169
+ });
170
+ }); });
171
+ })];
172
+ });
173
+ });
174
+ }
175
+ exports.unzip = unzip;
176
+ // NOTE: This code was directly copied from ChatGPT and appears to function as expected.
177
+ // However, confidence in its complete accuracy and robustness is limited.
178
+ function zip(sourceFolder, targetZip) {
179
+ return __awaiter(this, void 0, void 0, function () {
180
+ var _this = this;
181
+ return __generator(this, function (_a) {
182
+ return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
183
+ // Recursive function to explore directories and their subdirectories
184
+ function exploreDir(dir) {
185
+ return __awaiter(this, void 0, void 0, function () {
186
+ var dirContent, dirContent_1, dirContent_1_1, file, filePath, stat, e_2_1;
187
+ var e_2, _a;
188
+ return __generator(this, function (_b) {
189
+ switch (_b.label) {
190
+ case 0: return [4 /*yield*/, promises_1.default.readdir(dir)];
191
+ case 1:
192
+ dirContent = _b.sent();
193
+ _b.label = 2;
194
+ case 2:
195
+ _b.trys.push([2, 9, 10, 11]);
196
+ dirContent_1 = __values(dirContent), dirContent_1_1 = dirContent_1.next();
197
+ _b.label = 3;
198
+ case 3:
199
+ if (!!dirContent_1_1.done) return [3 /*break*/, 8];
200
+ file = dirContent_1_1.value;
201
+ filePath = node_path_1.default.join(dir, file);
202
+ return [4 /*yield*/, promises_1.default.stat(filePath)];
203
+ case 4:
204
+ stat = _b.sent();
205
+ if (!stat.isDirectory()) return [3 /*break*/, 6];
206
+ return [4 /*yield*/, exploreDir(filePath)];
207
+ case 5:
208
+ _b.sent();
209
+ return [3 /*break*/, 7];
210
+ case 6:
211
+ if (stat.isFile()) {
212
+ files.push(filePath);
213
+ }
214
+ _b.label = 7;
215
+ case 7:
216
+ dirContent_1_1 = dirContent_1.next();
217
+ return [3 /*break*/, 3];
218
+ case 8: return [3 /*break*/, 11];
219
+ case 9:
220
+ e_2_1 = _b.sent();
221
+ e_2 = { error: e_2_1 };
222
+ return [3 /*break*/, 11];
223
+ case 10:
224
+ try {
225
+ if (dirContent_1_1 && !dirContent_1_1.done && (_a = dirContent_1.return)) _a.call(dirContent_1);
226
+ }
227
+ finally { if (e_2) throw e_2.error; }
228
+ return [7 /*endfinally*/];
229
+ case 11: return [2 /*return*/];
230
+ }
231
+ });
232
+ });
233
+ }
234
+ var zipfile, files, files_1, files_1_1, file, relativePath;
235
+ var e_1, _a;
236
+ return __generator(this, function (_b) {
237
+ switch (_b.label) {
238
+ case 0:
239
+ zipfile = new yazl_1.default.ZipFile();
240
+ files = [];
241
+ // Collecting all files to be zipped
242
+ return [4 /*yield*/, exploreDir(sourceFolder)];
243
+ case 1:
244
+ // Collecting all files to be zipped
245
+ _b.sent();
246
+ try {
247
+ // Adding files to zip
248
+ for (files_1 = __values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) {
249
+ file = files_1_1.value;
250
+ relativePath = node_path_1.default.relative(sourceFolder, file);
251
+ zipfile.addFile(file, relativePath);
252
+ }
253
+ }
254
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
255
+ finally {
256
+ try {
257
+ if (files_1_1 && !files_1_1.done && (_a = files_1.return)) _a.call(files_1);
258
+ }
259
+ finally { if (e_1) throw e_1.error; }
260
+ }
261
+ zipfile.outputStream
262
+ .pipe(fs_1.default.createWriteStream(targetZip))
263
+ .on("close", function () { return resolve(); })
264
+ .on("error", function (err) { return reject(err); }); // Listen to error events
265
+ zipfile.end();
266
+ return [2 /*return*/];
267
+ }
268
+ });
269
+ }); })];
270
+ });
271
+ });
272
+ }
273
+ exports.zip = zip;
274
+ //# sourceMappingURL=unzip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../../src/bin/tools/unzip.ts"],"names":[],"mappings":"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"}