lincd-cli 1.1.11 → 1.2.1

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 (143) hide show
  1. package/defaults/app-static/.env-cmdrc.json +17 -0
  2. package/defaults/app-static/package.json +8 -0
  3. package/defaults/app-static/src/index-static.tsx +3 -3
  4. package/defaults/app-with-backend/.env-cmdrc.json +1 -4
  5. package/defaults/app-with-backend/.eslintignore +3 -1
  6. package/defaults/app-with-backend/lincd.config.js +1 -3
  7. package/defaults/app-with-backend/package.json +11 -21
  8. package/defaults/app-with-backend/scripts/storage-config.js +6 -6
  9. package/defaults/app-with-backend/src/App.module.css +17 -0
  10. package/defaults/app-with-backend/src/App.tsx +11 -15
  11. package/defaults/app-with-backend/src/backend.ts +8 -0
  12. package/defaults/app-with-backend/src/components/Error.tsx +2 -5
  13. package/defaults/app-with-backend/src/components/Spinner.tsx +3 -3
  14. package/defaults/app-with-backend/src/config-frontend.ts +6 -6
  15. package/defaults/app-with-backend/src/index.tsx +1 -0
  16. package/defaults/app-with-backend/src/layout/DefaultLayout.module.css +12 -0
  17. package/defaults/app-with-backend/src/layout/DefaultLayout.tsx +3 -4
  18. package/defaults/app-with-backend/src/layout/Header.module.css +25 -0
  19. package/defaults/app-with-backend/src/layout/Header.tsx +10 -6
  20. package/defaults/app-with-backend/src/package.ts +1 -3
  21. package/defaults/app-with-backend/src/pages/Home.tsx +2 -3
  22. package/defaults/app-with-backend/src/routes.tsx +8 -7
  23. package/defaults/app-with-backend/src/theme.css +100 -0
  24. package/defaults/app-with-backend/tsconfig.json +8 -5
  25. package/defaults/component.tsx +1 -3
  26. package/defaults/package/package.json +2 -2
  27. package/defaults/package/src/index.ts +1 -0
  28. package/defaults/package/src/ontologies/example-ontology.ts +10 -3
  29. package/defaults/package/src/package.ts +11 -3
  30. package/defaults/package/src/types.d.ts +9 -0
  31. package/defaults/package/tsconfig-cjs.json +8 -0
  32. package/defaults/package/tsconfig-esm.json +9 -0
  33. package/defaults/set-component.tsx +2 -5
  34. package/defaults/shape.ts +2 -2
  35. package/lib/{cli-methods.js → cjs/cli-methods.js} +779 -322
  36. package/lib/cjs/cli-methods.js.map +1 -0
  37. package/lib/cjs/cli.js +208 -0
  38. package/lib/cjs/cli.js.map +1 -0
  39. package/lib/cjs/config-grunt.cjs +276 -0
  40. package/lib/cjs/config-grunt.cjs.map +1 -0
  41. package/lib/cjs/config-webpack-app.js +495 -0
  42. package/lib/cjs/config-webpack-app.js.map +1 -0
  43. package/lib/cjs/config-webpack.js +444 -0
  44. package/lib/cjs/config-webpack.js.map +1 -0
  45. package/lib/{index.js → cjs/index.js} +5 -5
  46. package/lib/cjs/index.js.map +1 -0
  47. package/lib/{interfaces.js.map → cjs/interfaces.js.map} +1 -1
  48. package/lib/cjs/loaders/css-loader.mjs +86 -0
  49. package/lib/cjs/loaders/css-loader.mjs.map +1 -0
  50. package/lib/cjs/loaders/register.js +11 -0
  51. package/lib/cjs/loaders/register.js.map +1 -0
  52. package/lib/cjs/metadata.js +155 -0
  53. package/lib/cjs/metadata.js.map +1 -0
  54. package/lib/cjs/package.json +141 -0
  55. package/lib/{plugins → cjs/plugins}/check-imports.js +1 -1
  56. package/lib/cjs/plugins/check-imports.js.map +1 -0
  57. package/lib/cjs/plugins/declaration-plugin.js +285 -0
  58. package/lib/cjs/plugins/declaration-plugin.js.map +1 -0
  59. package/lib/cjs/plugins/externalise-modules.js +190 -0
  60. package/lib/cjs/plugins/externalise-modules.js.map +1 -0
  61. package/lib/cjs/plugins/lincd-tailwind-sources.js +32 -0
  62. package/lib/cjs/plugins/lincd-tailwind-sources.js.map +1 -0
  63. package/lib/cjs/plugins/watch-run.js.map +1 -0
  64. package/lib/cjs/tailwind.config.js +18 -0
  65. package/lib/cjs/tailwind.config.js.map +1 -0
  66. package/lib/{utils.js → cjs/utils.js} +112 -52
  67. package/lib/cjs/utils.js.map +1 -0
  68. package/lib/esm/cli-methods.js +2045 -0
  69. package/lib/esm/cli-methods.js.map +1 -0
  70. package/lib/{cli.js → esm/cli.js} +65 -44
  71. package/lib/esm/cli.js.map +1 -0
  72. package/lib/{config-grunt.js → esm/config-grunt.cjs} +15 -16
  73. package/lib/esm/config-grunt.cjs.map +1 -0
  74. package/lib/esm/config-webpack-app.js +460 -0
  75. package/lib/esm/config-webpack-app.js.map +1 -0
  76. package/lib/{config-webpack.js → esm/config-webpack.js} +37 -50
  77. package/lib/esm/config-webpack.js.map +1 -0
  78. package/lib/esm/index.js +10 -0
  79. package/lib/esm/index.js.map +1 -0
  80. package/lib/esm/interfaces.js +2 -0
  81. package/lib/esm/interfaces.js.map +1 -0
  82. package/lib/esm/loaders/css-loader.mjs +86 -0
  83. package/lib/esm/loaders/css-loader.mjs.map +1 -0
  84. package/lib/esm/loaders/register.js +9 -0
  85. package/lib/esm/loaders/register.js.map +1 -0
  86. package/lib/esm/metadata.js +155 -0
  87. package/lib/esm/metadata.js.map +1 -0
  88. package/lib/esm/package.json +141 -0
  89. package/lib/esm/plugins/check-imports.js +65 -0
  90. package/lib/esm/plugins/check-imports.js.map +1 -0
  91. package/lib/{plugins → esm/plugins}/declaration-plugin.js +9 -8
  92. package/lib/esm/plugins/declaration-plugin.js.map +1 -0
  93. package/lib/{plugins → esm/plugins}/externalise-modules.js +5 -6
  94. package/lib/esm/plugins/externalise-modules.js.map +1 -0
  95. package/lib/esm/plugins/lincd-tailwind-sources.js +27 -0
  96. package/lib/esm/plugins/lincd-tailwind-sources.js.map +1 -0
  97. package/lib/esm/plugins/watch-run.js +44 -0
  98. package/lib/esm/plugins/watch-run.js.map +1 -0
  99. package/lib/esm/tailwind.config.js +13 -0
  100. package/lib/esm/tailwind.config.js.map +1 -0
  101. package/lib/esm/utils.js +521 -0
  102. package/lib/esm/utils.js.map +1 -0
  103. package/lib-template/cjs/package.json +3 -0
  104. package/lib-template/esm/package.json +3 -0
  105. package/package.json +64 -24
  106. package/tsconfig-cjs.json +9 -0
  107. package/tsconfig-esm.json +10 -0
  108. package/defaults/app-with-backend/babel.config.js +0 -4
  109. package/defaults/app-with-backend/src/App.scss +0 -6
  110. package/defaults/app-with-backend/src/App.scss.json +0 -1
  111. package/defaults/app-with-backend/src/components/Error.scss.json +0 -1
  112. package/defaults/app-with-backend/src/components/Spinner.scss.json +0 -1
  113. package/defaults/app-with-backend/src/layout/DefaultLayout.scss +0 -6
  114. package/defaults/app-with-backend/src/layout/DefaultLayout.scss.json +0 -1
  115. package/defaults/app-with-backend/src/layout/Header.scss +0 -10
  116. package/defaults/app-with-backend/src/layout/Header.scss.json +0 -1
  117. package/defaults/app-with-backend/src/pages/Home.scss.json +0 -1
  118. package/defaults/app-with-backend/src/scss/global-overwrites.scss +0 -11
  119. package/defaults/app-with-backend/src/scss/variables.scss +0 -23
  120. package/lib/cli-methods.js.map +0 -1
  121. package/lib/cli.js.map +0 -1
  122. package/lib/config-grunt.js.map +0 -1
  123. package/lib/config-webpack-app.js +0 -367
  124. package/lib/config-webpack-app.js.map +0 -1
  125. package/lib/config-webpack.js.map +0 -1
  126. package/lib/index.js.map +0 -1
  127. package/lib/metadata.js +0 -149
  128. package/lib/metadata.js.map +0 -1
  129. package/lib/plugins/check-imports.js.map +0 -1
  130. package/lib/plugins/declaration-plugin.js.map +0 -1
  131. package/lib/plugins/externalise-modules.js.map +0 -1
  132. package/lib/plugins/watch-run.js.map +0 -1
  133. package/lib/utils.js.map +0 -1
  134. /package/defaults/app-with-backend/{web → public}/favicon-144x144.png +0 -0
  135. /package/defaults/app-with-backend/{web → public}/favicon-57x57.png +0 -0
  136. /package/defaults/app-with-backend/{web → public}/favicon-72x72.png +0 -0
  137. /package/defaults/app-with-backend/{web → public}/favicon.ico +0 -0
  138. /package/defaults/app-with-backend/src/components/{Error.scss → Error.module.css} +0 -0
  139. /package/defaults/app-with-backend/src/components/{Spinner.scss → Spinner.module.css} +0 -0
  140. /package/defaults/app-with-backend/src/pages/{Home.scss → Home.module.css} +0 -0
  141. /package/{expose-grunt.js → expose-grunt.cjs} +0 -0
  142. /package/lib/{interfaces.js → cjs/interfaces.js} +0 -0
  143. /package/lib/{plugins → cjs/plugins}/watch-run.js +0 -0
@@ -0,0 +1,155 @@
1
+ // import {NamedNode} from 'lincd/models';
2
+ // import {GetEnvVars} from 'env-cmd';
3
+ // import path from 'path';
4
+ // import fs from 'fs-extra';
5
+ // import {createNameSpace} from 'lincd/utils/NameSpace';
6
+ // import {Prefix} from 'lincd/utils/Prefix';
7
+ // import {getPackageJSON} from './utils';
8
+ // import {warn} from './cli-methods';
9
+ // import {JSONLDWriter} from 'lincd-jsonld/utils/JSONLDWriter';
10
+ //
11
+ // function getLocalPackagePaths() {
12
+ // let packagePaths = [];
13
+ //
14
+ // //add the APP package itself
15
+ // let appPackagePath = process.cwd();
16
+ // let appLincdPackagePath = path.join(
17
+ // appPackagePath,
18
+ // 'frontend',
19
+ // 'src',
20
+ // 'package.ts',
21
+ // );
22
+ // if (fs.existsSync(appPackagePath)) {
23
+ // let packageJSON = getPackageJSON(appPackagePath);
24
+ //
25
+ // packagePaths.push([
26
+ // packageJSON.name,
27
+ // appPackagePath,
28
+ // appLincdPackagePath,
29
+ // true,
30
+ // ]);
31
+ // } else {
32
+ // console.log('Not a LINCD app');
33
+ // }
34
+ //
35
+ // //NOTE: we could also switch to checking 'workspaces'?
36
+ // let packagesFolder = path.join(process.cwd(), 'packages');
37
+ // if (fs.existsSync(packagesFolder)) {
38
+ // let localPackages = fs.readdirSync(packagesFolder);
39
+ // localPackages.forEach((packageFolderName) => {
40
+ // packagePaths.push([
41
+ // packageFolderName,
42
+ // path.join(packagesFolder, packageFolderName),
43
+ // path.join(packagesFolder, packageFolderName, 'lib', 'package.js'),
44
+ // ]);
45
+ // });
46
+ // }
47
+ // return packagePaths;
48
+ // }
49
+ //
50
+ // export const buildMetadata = async (): Promise<string[]> => {
51
+ // // require('@babel/register')({extensions: ['js', '.ts', '.tsx']});
52
+ //
53
+ // //NOTE: we can not rely on the LincdWebApp shape from lincd-server here, because that would make the initial build of all modules a lot trickier
54
+ // //see, CLI needs to be built as one of the first things in order to build other things. So it cannot rely on lincd-server, which relies on 10 other packages
55
+ // let app: NamedNode;
56
+ //
57
+ // //set the URL of the app as the URI of its node
58
+ // let envVars: any = await GetEnvVars({
59
+ // envFile: {
60
+ // filePath: '.env-cmdrc.json',
61
+ // },
62
+ // });
63
+ // if (
64
+ // envVars[process.env.NODE_ENV] &&
65
+ // envVars[process.env.NODE_ENV].SITE_ROOT
66
+ // ) {
67
+ // //get the site root of the current environment
68
+ // app = NamedNode.getOrCreate(envVars[process.env.NODE_ENV].SITE_ROOT);
69
+ // } else {
70
+ // warn(
71
+ // 'Cannot find environment variable SITE_ROOT. Make sure SITE_ROOT is set (likely in .env-cmdrc.json) for the current environment: ' +
72
+ // process.env.NODE_ENV,
73
+ // );
74
+ // app = NamedNode.create();
75
+ // }
76
+ //
77
+ // let updatedPaths = [];
78
+ // var localPackagePaths = getLocalPackagePaths();
79
+ //
80
+ // //prepare output path
81
+ // let metadataFolder = path.join(process.cwd(), 'data', 'metadata');
82
+ // await fs.ensureDir(metadataFolder); //{recursive:true} but not needed with fs-extra
83
+ //
84
+ // for (const [
85
+ // packageCodeName,
86
+ // packagePath,
87
+ // lincdPackagePath,
88
+ // isAppPackage,
89
+ // ] of localPackagePaths) {
90
+ // let errors = false;
91
+ // //TODO: check if this resolves, if not, skip it (for initial setup)
92
+ // import('lincd-modules/scripts/package-metadata.js').then(
93
+ // async (script) => {
94
+ // await script
95
+ // .getPackageMetadata(packagePath, lincdPackagePath)
96
+ // .then(async (response) => {
97
+ // if (response.errors.length > 0) {
98
+ // // console.log(JSON.stringify(response));
99
+ // warn(
100
+ // 'Error processing ' +
101
+ // packagePath +
102
+ // ':\n' +
103
+ // response.errors.join('\n'),
104
+ // );
105
+ // // throw response
106
+ // errors = true;
107
+ // } else {
108
+ // if (!response.packageUri) {
109
+ // console.warn(
110
+ // 'No package URI from meta data. Not building meta data for this package',
111
+ // );
112
+ // return;
113
+ // }
114
+ // let pkgNode = NamedNode.getOrCreate(response.packageUri);
115
+ // //connect the packages to the app
116
+ // let lincdApp = createNameSpace('http://lincd.org/ont/lincd-app/');
117
+ // Prefix.add('lincdApp', 'http://lincd.org/ont/lincd-app/');
118
+ // if (isAppPackage) {
119
+ // //Note: this needs to match with LincdWebApp.ownPackage accessor;
120
+ // app.overwrite(lincdApp('ownPackage'), pkgNode);
121
+ // } else {
122
+ // //Note: this needs to match with LincdWebApp.packages accessor;
123
+ // app.set(lincdApp('maintainsPackage'), pkgNode);
124
+ // }
125
+ //
126
+ // //write this graph to a jsonld file
127
+ // let packageMetaData = JSON.stringify(response.result, null, 2);
128
+ // let metadataFile = path.join(
129
+ // metadataFolder,
130
+ // packageCodeName + '.json',
131
+ // );
132
+ // await fs.writeFile(metadataFile, packageMetaData).then(() => {
133
+ // updatedPaths.push(metadataFile);
134
+ // });
135
+ // }
136
+ // });
137
+ // },
138
+ // );
139
+ //
140
+ // //enable this when testing if you don't want to continue with building other metadata when an errors occur
141
+ // // if (errors) break;
142
+ // }
143
+ //
144
+ // let packageMetaData = await JSONLDWriter.stringify(
145
+ // app as any,
146
+ // process.env.NODE_ENV === 'development',
147
+ // );
148
+ // let metadataFile = path.join(metadataFolder, '_app.json');
149
+ // await fs.writeFile(metadataFile, packageMetaData).then(() => {
150
+ // updatedPaths.push(metadataFile);
151
+ // });
152
+ //
153
+ // return updatedPaths;
154
+ // };
155
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,sCAAsC;AACtC,2BAA2B;AAC3B,6BAA6B;AAC7B,yDAAyD;AACzD,6CAA6C;AAC7C,0CAA0C;AAC1C,sCAAsC;AACtC,gEAAgE;AAChE,EAAE;AACF,oCAAoC;AACpC,2BAA2B;AAC3B,EAAE;AACF,iCAAiC;AACjC,wCAAwC;AACxC,yCAAyC;AACzC,sBAAsB;AACtB,kBAAkB;AAClB,aAAa;AACb,oBAAoB;AACpB,OAAO;AACP,yCAAyC;AACzC,wDAAwD;AACxD,EAAE;AACF,0BAA0B;AAC1B,0BAA0B;AAC1B,wBAAwB;AACxB,6BAA6B;AAC7B,cAAc;AACd,UAAU;AACV,aAAa;AACb,sCAAsC;AACtC,MAAM;AACN,EAAE;AACF,2DAA2D;AAC3D,+DAA+D;AAC/D,yCAAyC;AACzC,0DAA0D;AAC1D,qDAAqD;AACrD,4BAA4B;AAC5B,6BAA6B;AAC7B,wDAAwD;AACxD,6EAA6E;AAC7E,YAAY;AACZ,UAAU;AACV,MAAM;AACN,yBAAyB;AACzB,IAAI;AACJ,EAAE;AACF,gEAAgE;AAChE,wEAAwE;AACxE,EAAE;AACF,qJAAqJ;AACrJ,iKAAiK;AACjK,wBAAwB;AACxB,EAAE;AACF,oDAAoD;AACpD,0CAA0C;AAC1C,iBAAiB;AACjB,qCAAqC;AACrC,SAAS;AACT,QAAQ;AACR,SAAS;AACT,uCAAuC;AACvC,8CAA8C;AAC9C,QAAQ;AACR,qDAAqD;AACrD,4EAA4E;AAC5E,aAAa;AACb,YAAY;AACZ,6IAA6I;AAC7I,gCAAgC;AAChC,SAAS;AACT,gCAAgC;AAChC,MAAM;AACN,EAAE;AACF,2BAA2B;AAC3B,oDAAoD;AACpD,EAAE;AACF,0BAA0B;AAC1B,uEAAuE;AACvE,wFAAwF;AACxF,EAAE;AACF,iBAAiB;AACjB,uBAAuB;AACvB,mBAAmB;AACnB,wBAAwB;AACxB,oBAAoB;AACpB,8BAA8B;AAC9B,0BAA0B;AAC1B,0EAA0E;AAC1E,gEAAgE;AAChE,4BAA4B;AAC5B,uBAAuB;AACvB,+DAA+D;AAC/D,wCAAwC;AACxC,gDAAgD;AAChD,0DAA0D;AAC1D,sBAAsB;AACtB,wCAAwC;AACxC,kCAAkC;AAClC,4BAA4B;AAC5B,gDAAgD;AAChD,mBAAmB;AACnB,kCAAkC;AAClC,+BAA+B;AAC/B,uBAAuB;AACvB,4CAA4C;AAC5C,gCAAgC;AAChC,8FAA8F;AAC9F,qBAAqB;AACrB,0BAA0B;AAC1B,kBAAkB;AAClB,0EAA0E;AAC1E,kDAAkD;AAClD,mFAAmF;AACnF,2EAA2E;AAC3E,oCAAoC;AACpC,oFAAoF;AACpF,kEAAkE;AAClE,yBAAyB;AACzB,kFAAkF;AAClF,kEAAkE;AAClE,kBAAkB;AAClB,EAAE;AACF,oDAAoD;AACpD,gFAAgF;AAChF,8CAA8C;AAC9C,kCAAkC;AAClC,6CAA6C;AAC7C,mBAAmB;AACnB,+EAA+E;AAC/E,mDAAmD;AACnD,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB;AAChB,WAAW;AACX,SAAS;AACT,EAAE;AACF,iHAAiH;AACjH,4BAA4B;AAC5B,MAAM;AACN,EAAE;AACF,wDAAwD;AACxD,kBAAkB;AAClB,8CAA8C;AAC9C,OAAO;AACP,+DAA+D;AAC/D,mEAAmE;AACnE,uCAAuC;AACvC,QAAQ;AACR,EAAE;AACF,yBAAyB;AACzB,KAAK"}
@@ -0,0 +1,141 @@
1
+ {
2
+ "name": "lincd-cli",
3
+ "version": "1.2.0",
4
+ "description": "Command line tools for the lincd.js library",
5
+ "typesVersions": {
6
+ "*": {
7
+ "*": [
8
+ "lib/esm/*"
9
+ ]
10
+ }
11
+ },
12
+ "scripts": {
13
+ "prepublishOnly": "npm exec build",
14
+ "build": "rimraf ./lib && yarn build-esm && yarn build-cjs && yarn dual-package",
15
+ "build-cjs": "echo \"compiling CJS\" && yarn tsc -p tsconfig-cjs.json",
16
+ "build-esm": "echo \"compiling ESM\" && yarn tsc -p tsconfig-esm.json",
17
+ "dual-package": "echo 'adding package.json to each lib folder for dual output support' && yarn tsconfig-to-dual-package ./tsconfig-cjs.json ./tsconfig-esm.json",
18
+ "dev": "yarn tsc -p tsconfig-esm.json -w",
19
+ "dev-cjs": "yarn tsc -p tsconfig-cjs.json -w",
20
+ "postinstall": "husky install",
21
+ "prepack": "yarn build && pinst --disable && yarn version patch",
22
+ "postpack": "pinst --enable",
23
+ "prettier": "prettier \"src/**/*.{js,jsx,ts,tsx,css,scss}\" --check",
24
+ "prettier:fix": "yarn prettier --write",
25
+ "format": "yarn prettier:fix && yarn lint:fix"
26
+ },
27
+ "lint-staged": {
28
+ "*.{js,ts,tsx}": [
29
+ "prettier --write"
30
+ ],
31
+ "*.{scss,css}": [
32
+ "prettier --write"
33
+ ]
34
+ },
35
+ "keywords": [
36
+ "lincd",
37
+ "cli",
38
+ "build",
39
+ "tools"
40
+ ],
41
+ "repository": "https://github.com:Semantu/lincd.org",
42
+ "author": {
43
+ "name": "René Verheij",
44
+ "url": "https://github.com/flyon",
45
+ "email": "rpwverheij@gmail.com"
46
+ },
47
+ "license": "MPL-2.0",
48
+ "bin": {
49
+ "grunt": "expose-grunt.cjs",
50
+ "lincd": "lib/esm/cli.js",
51
+ "lincd-cli": "lib/esm/cli.js"
52
+ },
53
+ "dependencies": {
54
+ "@babel/cli": "^7.23.9",
55
+ "@babel/core": "^7.24.0",
56
+ "@babel/plugin-proposal-decorators": "^7.24.0",
57
+ "@babel/plugin-transform-runtime": "^7.24.0",
58
+ "@babel/preset-env": "^7.24.0",
59
+ "@babel/preset-react": "^7.23.3",
60
+ "@babel/preset-typescript": "^7.23.3",
61
+ "@babel/register": "^7.23.7",
62
+ "@lodder/grunt-postcss": "^3.1.1",
63
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
64
+ "@tailwindcss/postcss": "^4.1.4",
65
+ "@types/node": "^20.12.7",
66
+ "@types/react": "^18.0.17",
67
+ "@types/react-dom": "^18.0.6",
68
+ "babel-loader": "^9.1.3",
69
+ "chalk": "^4.1.2",
70
+ "child-process-promise": "^2.2.1",
71
+ "colors": "^1.4.0",
72
+ "commander": "^11.0.0",
73
+ "copy-webpack-plugin": "^12.0.2",
74
+ "copyfiles": "^2.4.1",
75
+ "create-esm-loader": "^0.2.5",
76
+ "css-loader": "^6.10.0",
77
+ "css-parse": "^2.0.0",
78
+ "depcheck": "^1.4.7",
79
+ "env-cmd": "^10.1.0",
80
+ "find-nearest-package-json": "^2.0.1",
81
+ "fs-extra": "^11.2.0",
82
+ "glob": "^10.3.12",
83
+ "grunt": "^1.6.1",
84
+ "grunt-cli": "^1.4.3",
85
+ "grunt-concurrent": "^3.0.0",
86
+ "grunt-contrib-clean": "^2.0.1",
87
+ "grunt-contrib-copy": "^1.0.0",
88
+ "grunt-exec": "^3.0.0",
89
+ "grunt-ts": "^6.0.0-beta.22",
90
+ "grunt-webpack": "^6.0.0",
91
+ "license-info-webpack-plugin": "^3.0.0",
92
+ "lincd": "^1.0",
93
+ "lincd-jsonld": "~1.0",
94
+ "lincd-modules": "~1.0",
95
+ "load-grunt-tasks": "^5.1.0",
96
+ "mini-css-extract-plugin": "^2.8.1",
97
+ "node-hook": "^1.0.0",
98
+ "open": "^8.4.0",
99
+ "ora": "^8.0.1",
100
+ "postcss": "^8.5.3",
101
+ "postcss-comment": "^2.0.0",
102
+ "postcss-font-magician": "^4.0.0",
103
+ "postcss-import": "^16.1.0",
104
+ "postcss-loader": "^8.1.1",
105
+ "postcss-modules": "^6.0.1",
106
+ "postcss-nested": "^7.0.2",
107
+ "postcss-preset-env": "^10.1.5",
108
+ "postcss-reporter": "^7.1.0",
109
+ "postcss-scss": "^4.0.9",
110
+ "postcss-strip-inline-comments": "^0.1.5",
111
+ "postcss-url": "^10.1.3",
112
+ "react-refresh-typescript": "^2.0.10",
113
+ "require-extensions": "^0.0.4",
114
+ "rimraf": "^5.0.7",
115
+ "sass": "^1.71.1",
116
+ "sass-loader": "^14.1.1",
117
+ "source-map-loader": "^5.0.0",
118
+ "staged-git-files": "^1.3.0",
119
+ "tailwindcss": "^4.1.4",
120
+ "terminal-kit": "^3.1.1",
121
+ "terser-webpack-plugin": "^5.3.10",
122
+ "ts-loader": "^9.5.1",
123
+ "tsconfig-paths-webpack-plugin": "^4.1.0",
124
+ "tsconfig-to-dual-package": "^1.2.0",
125
+ "tsx": "^4.19.3",
126
+ "typescript": "^5.7.3",
127
+ "typescript-plugin-css-modules": "^5.1.0",
128
+ "webpack": "^5.90.3",
129
+ "webpack-bundle-analyzer": "^4.10.1",
130
+ "webpack-license-plugin": "^4.4.2",
131
+ "webpack-typings-for-css": "^0.13.0"
132
+ },
133
+ "devDependencies": {
134
+ "husky": "^9.0.11",
135
+ "optimize-css-assets-webpack-plugin": "^6.0.1",
136
+ "pinst": "^3.0.0",
137
+ "prettier": "^3.2.5"
138
+ },
139
+ "peerDepencencies": {},
140
+ "type": "commonjs"
141
+ }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = handler;
3
4
  // file: my-webpack-loader.js
4
5
  const { getOptions } = require('loader-utils');
5
6
  // const validateOptions = require('schema-utils');
@@ -63,6 +64,5 @@ function handler(source) {
63
64
  // validateOptions(schema, options, 'My Webpack Loader');
64
65
  return source;
65
66
  }
66
- exports.default = handler;
67
67
  module.exports = handler;
68
68
  //# sourceMappingURL=check-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-imports.js","sourceRoot":"","sources":["../../../src/plugins/check-imports.ts"],"names":[],"mappings":";;AAsBA,0BAsDC;AA5ED,6BAA6B;AAC7B,MAAM,EAAC,UAAU,EAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC7C,mDAAmD;AACnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,mBAAmB;AACnB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,wBAAwB;AACxB,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AAC9B,IAAI,CAAC;IACH,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;AAC3C,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAC/D,CAAC;AAED,SAAwB,OAAO,CAAC,MAAM;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,+BAA+B;IAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACnC,sDAAsD;IACtD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,6CAA6C;IAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,uFAAuF;IACvF,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAC3C,sBAAsB;IACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrC,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC;IAEjE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,0BAA0B;IAC1B,iCAAiC;IACjC,IAAI;IAEJ,IAAI,aAAa,GACf,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9D,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,8CAA8C;IAC9C,wCAAwC;IACxC,6CAA6C;IAC7C,kCAAkC;IAClC,wDAAwD;IACxD,OAAO;IACP,wEAAwE;IAExE,qEAAqE;IACrE,IACE,aAAa;QACb,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAChD,CAAC;QACD,IAAI,CAAC,SAAS,CACZ,KAAK,CACH,kEAAkE,QAAQ,CAAC,eAAe,CAAC,OAAO;UAChG,YAAY,cAAc,QAAQ,CAAC,eAAe,CAAC,OAAO,GAAG,CAChE,CACF,CAAC;IACJ,CAAC;IACD,gEAAgE;IAChE,0EAA0E;IAC1E,IAAI;IAEJ,yDAAyD;IAEzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,285 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ /// <reference path="colors.d.ts" />
40
+ const colors_1 = __importDefault(require("colors"));
41
+ const path = __importStar(require("path"));
42
+ const webpack_1 = __importDefault(require("webpack"));
43
+ const process = __importStar(require("process"));
44
+ const fs_1 = __importDefault(require("fs"));
45
+ const { Compilation } = webpack_1.default;
46
+ class DeclarationPlugin {
47
+ constructor(options = {}) {
48
+ this.logMessages = true;
49
+ this.exportRoot = '/lib';
50
+ this.options = options;
51
+ this.options['out'] = options.out
52
+ ? options.out
53
+ : './builds/declarations.d.ts';
54
+ this.options['config'] = options.config
55
+ ? options.config
56
+ : process.cwd() + '/daconfig.js';
57
+ //var moduleConfig = this.getModuleConfig();
58
+ this.options['root'] = options.root || this.exportRoot; //'/lib'
59
+ this.logMessages = options.debug ? options.debug : false;
60
+ //load package.json with fs
61
+ this.modulePackageInfo = JSON.parse(fs_1.default.readFileSync(process.cwd() + '/package.json', 'utf8'));
62
+ // this.modulePackageInfo = await import(process.cwd() + '/package.json');
63
+ // this.debug('found package name: '+this.modulePackageInfo.name);
64
+ }
65
+ // apply(compiler) {
66
+ // // Specify the event hook to attach to
67
+ // compiler.hooks.emit.tapAsync(
68
+ // 'MyExampleWebpackPlugin',
69
+ // (compilation, callback) => {
70
+ //
71
+ // }
72
+ apply(compiler) {
73
+ this.debug('applying ');
74
+ //when the compiler is ready to emit files
75
+ // compiler.plugin('emit', (compilation,callback) =>
76
+ compiler.hooks.compilation.tap('DeclarationPlugin', (compilation) => {
77
+ //NOTE: even though the stage comes from the processAssets hook and not the afterProcessAssets hook
78
+ // somehow this only works WITH the stage defined
79
+ compilation.hooks.afterProcessAssets.tap({
80
+ stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE,
81
+ name: 'DeclarationPlugin',
82
+ }, () => {
83
+ // this.debug('indexing and removing declaration assets');
84
+ //collect all generated declaration files
85
+ //and remove them from the assets that will be emitted
86
+ //NOTE: at some point we decided to overwrite declaration files between emits because sometimes only one new declaration file is emitted
87
+ //this may cause issues when you remove a file during the continuous building process, but better than the other way around for now
88
+ if (!this.declarationFiles) {
89
+ this.declarationFiles = {};
90
+ }
91
+ compilation.getAssets().forEach((asset, key) => {
92
+ // this.debug('key '+key.toString())
93
+ // this.debug('value '+Object.getOwnPropertyNames(asset).join(", "))
94
+ // this.debug('asset: ' + asset.name);
95
+ if (asset.name.indexOf('.d.ts') !== -1) {
96
+ if (this.declarationFiles[asset.name]) {
97
+ this.debug('overwriting ' + asset.name);
98
+ }
99
+ this.declarationFiles[asset.name] = asset;
100
+ this.debug('indexed and removed asset: ' + colors_1.default.green(asset.name));
101
+ compilation.deleteAsset(asset.name);
102
+ }
103
+ });
104
+ if (Object.keys(this.declarationFiles).length == 0) {
105
+ this.debug("Didn't build .d.ts file because no declaration assets were emitted during build process."
106
+ .yellow);
107
+ this.debug('This is likely because webpack is using cache.'.yellow);
108
+ this.debug('In watch mode, declaration assets will be emitted once you change a ts(x) source file'
109
+ .yellow);
110
+ // this.log('Make sure to run '.yellow + 'tsc'.blue + ' before running webpack'.yellow);
111
+ // this.log(
112
+ // 'Make sure to test for '.yellow +
113
+ // '/(?!.*.d.ts).ts(x?)$/'.blue.bold['underline'] +
114
+ // ' in the ts-loader in webpack.config.json'.yellow,
115
+ // );
116
+ // this.log(('Assets: ' + Object.keys(compilation.assets).toString()).yellow);
117
+ // callback();
118
+ return;
119
+ }
120
+ //combine them into one declaration file
121
+ var combinedDeclaration = this.generateCombinedDeclaration(this.declarationFiles); //moduleConfig
122
+ //and insert that back into the assets
123
+ // compilation.assets[this.options.out] = {
124
+ // source: function() {
125
+ // return combinedDeclaration;
126
+ // },
127
+ // size: function() {
128
+ // return combinedDeclaration.length;
129
+ // },
130
+ // };
131
+ // As suggested by @JonWallsten here: https://github.com/TypeStrong/ts-loader/pull/1251#issuecomment-800032753
132
+ compilation.emitAsset(this.options.out, new webpack_1.default.sources.RawSource(combinedDeclaration));
133
+ //get meta data from module exports
134
+ /*var metaRdfJson = this.generateMetaRdfJson(compilation,moduleConfig);
135
+ //and insert that back into the assets as [module_name].meta.json
136
+ compilation.assets[this.options.out.replace(".d.ts",".meta.rdf.json")] = {
137
+ source: function() {
138
+ return metaRdfJson;
139
+ },
140
+ size: function() {
141
+ return metaRdfJson.length;
142
+ }
143
+ };*/
144
+ //}
145
+ });
146
+ });
147
+ }
148
+ debug(...msgs) {
149
+ msgs.unshift('declarations:');
150
+ if (this.logMessages) {
151
+ console.log.apply(null, msgs);
152
+ }
153
+ }
154
+ log(...msgs) {
155
+ msgs.unshift('declarations:');
156
+ console.log.apply(null, msgs);
157
+ }
158
+ generateCombinedDeclaration(declarationFiles) {
159
+ this.debug('generating combined declaration');
160
+ var declarations = '';
161
+ //this.debug("daCore: using config ",moduleConfig);
162
+ //this.debug("Combining these files:"+Object.keys(declarationFiles).toString());
163
+ //get current directory that webpack is run from (base of project), and replace backward slashes by forward ones to compare
164
+ var basePath = process.cwd().replace(/\\/g, '/') + '/';
165
+ this.debug('Base path:', colors_1.default.blue(basePath));
166
+ var npmModuleName = this.modulePackageInfo.name;
167
+ // let moduleName = npmModuleName.replace(/\@\w+\//, '');
168
+ var importMap = {};
169
+ for (var declarationFileName in declarationFiles) {
170
+ //this.debug("Parsing "+declarationFileName);
171
+ var declarationFile = declarationFiles[declarationFileName];
172
+ var data = declarationFile.source.source();
173
+ if (!data.split) {
174
+ console.warn(typeof data, declarationFileName +
175
+ ' - cannot split declaration contents. Not a string?');
176
+ continue;
177
+ }
178
+ var lines = data.split('\n');
179
+ var i = lines.length;
180
+ while (i--) {
181
+ var line = lines[i];
182
+ //exclude empty lines
183
+ var excludeLine = line == '';
184
+ //if importing something, or re-exporting something
185
+ if (/import ([a-z0-9A-Z_\-\*\{\}\s,]+)/.test(line) ||
186
+ /export ([a-z0-9A-Z_-\{\}\s,\*]+) from/.test(line)) {
187
+ var fileImports = line.indexOf('"') !== -1
188
+ ? line.match(/\"([^\"]+)\"/)
189
+ : line.match(/\'([^\']+)\'/);
190
+ if (fileImports && fileImports.length > 1) {
191
+ var importPath = fileImports[1];
192
+ //if it is importing a relative path and it is a new one
193
+ if ((importPath.substr(0, 2) == './' ||
194
+ importPath.substr(0, 3) == '../') &&
195
+ !importMap[importPath]) {
196
+ //we will replace it with the local npm module later, calc and save the absolute path for now
197
+ //we parse from builds, because now TS-LOADER gives paths relative to its output folder
198
+ let parsed = path.parse('./builds/' + declarationFileName);
199
+ let fileDirectory = parsed.dir;
200
+ var absoluteImportPath = path.resolve(fileDirectory, importPath);
201
+ // this.debug('declarationfilename '+declarationFileName);
202
+ // this.debug('filedir '+fileDirectory);
203
+ this.debug('import ' + colors_1.default.blue(importPath), ' -> ' + colors_1.default.green(absoluteImportPath));
204
+ importMap[importPath] = absoluteImportPath;
205
+ }
206
+ }
207
+ }
208
+ //exclude re-exports
209
+ //excludeLine = excludeLine || (/export ([a-z0-9A-Z_-\{\}\s,\*]+) from/).test(line);
210
+ //exclude unnamed local imports like: import "./some.scss" or import "./someFile"t
211
+ excludeLine =
212
+ excludeLine || /import ["'][a-z0-9A-Z_\-.\/\\]+["']/.test(line);
213
+ //if defined, check for excluded references
214
+ if (!excludeLine &&
215
+ this.excludedReferences &&
216
+ line.indexOf('<reference') !== -1) {
217
+ excludeLine = this.excludedReferences.some((reference) => line.indexOf(reference) !== -1);
218
+ }
219
+ if (excludeLine) {
220
+ this.debug('Excluding line ' + i + ': ' + line);
221
+ lines.splice(i, 1);
222
+ }
223
+ else {
224
+ if (line.indexOf('declare ') !== -1) {
225
+ lines[i] = line.replace('declare ', '');
226
+ }
227
+ //add tab
228
+ lines[i] = lines[i];
229
+ }
230
+ }
231
+ //TS Loader now uses paths relative to output dir. so here we remove a single ../ from the path (which is in there because /builds is the output dir and /lib is the relative path of the file)
232
+ let fixedDeclarationPath = declarationFileName
233
+ .replace(/\\/g, '/')
234
+ .replace('../', '')
235
+ .replace('.d.ts', '');
236
+ var moduleDeclaration = npmModuleName + '/' + fixedDeclarationPath;
237
+ //this.debug('basePath:'+basePath);
238
+ declarations +=
239
+ "declare module '" +
240
+ moduleDeclaration +
241
+ "' {\n\t" +
242
+ lines.join('\n\t') +
243
+ '\n}\n\n';
244
+ this.debug('Defining module ' +
245
+ colors_1.default.yellow(moduleDeclaration) +
246
+ ' from ' +
247
+ colors_1.default.blue(declarationFileName));
248
+ }
249
+ for (var relativeImportPath in importMap) {
250
+ let absoluteImportPath = importMap[relativeImportPath];
251
+ let npmImportModule = npmModuleName +
252
+ '/' +
253
+ absoluteImportPath
254
+ .substr(basePath.length)
255
+ .replace('.d.ts', '')
256
+ .replace(/\\/g, '/');
257
+ this.debug('Replacing ' +
258
+ colors_1.default.blue(relativeImportPath) +
259
+ ' with ' +
260
+ colors_1.default.yellow(npmImportModule));
261
+ //wrap in quotes to omit problems with replacing partials and having to fix order of replacements
262
+ declarations = declarations.replace(new RegExp('(\'|")' + relativeImportPath + '(\'|")', 'g'), '"' + npmImportModule + '"');
263
+ }
264
+ let indexModulePath = this.modulePackageInfo.name + this.exportRoot + '/index';
265
+ this.debug('Replacing index ' +
266
+ colors_1.default.yellow(indexModulePath) +
267
+ ' with ' +
268
+ colors_1.default.yellow(this.modulePackageInfo.name));
269
+ declarations = declarations.replace("'" + indexModulePath + "'", "'" + this.modulePackageInfo.name + "'");
270
+ //replace alias
271
+ if (this.options.alias) {
272
+ for (let aliasKey in this.options.alias) {
273
+ //declarations = declarations.replace(aliasKey,this.options.alias[aliasKey]);
274
+ this.debug('Replacing alias ' +
275
+ aliasKey +
276
+ ' with ' +
277
+ this.options.alias[aliasKey]);
278
+ declarations = declarations.replace(new RegExp(aliasKey, 'g'), this.options.alias[aliasKey]);
279
+ }
280
+ }
281
+ return declarations;
282
+ }
283
+ }
284
+ exports.default = DeclarationPlugin;
285
+ //# sourceMappingURL=declaration-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declaration-plugin.js","sourceRoot":"","sources":["../../../src/plugins/declaration-plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,oDAA4B;AAC5B,2CAA6B;AAE7B,sDAA8B;AAC9B,iDAAmC;AACnC,4CAAoB;AACpB,MAAM,EAAC,WAAW,EAAC,GAAG,iBAAO,CAAC;AAC9B,MAAqB,iBAAiB;IASpC,YAAY,UAAe,EAAE;QAL7B,gBAAW,GAAY,IAAI,CAAC;QAGpB,eAAU,GAAW,MAAM,CAAC;QAGlC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG;YAC/B,CAAC,CAAC,OAAO,CAAC,GAAG;YACb,CAAC,CAAC,4BAA4B,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM;YACrC,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QAEnC,4CAA4C;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ;QAChE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAEzD,2BAA2B;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9F,0EAA0E;QAC1E,kEAAkE;IACpE,CAAC;IAED,oBAAoB;IACpB,2CAA2C;IAC3C,kCAAkC;IAClC,gCAAgC;IAChC,mCAAmC;IACnC,EAAE;IACF,QAAQ;IACR,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxB,0CAA0C;QAC1C,oDAAoD;QACpD,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,EAAE;YAClE,mGAAmG;YACnG,iDAAiD;YACjD,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CACtC;gBACE,KAAK,EAAE,WAAW,CAAC,6BAA6B;gBAChD,IAAI,EAAE,mBAAmB;aAC1B,EACD,GAAG,EAAE;gBACH,0DAA0D;gBAC1D,yCAAyC;gBACzC,sDAAsD;gBAEtD,wIAAwI;gBACxI,mIAAmI;gBACnI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC7B,CAAC;gBAED,WAAW,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC7C,oCAAoC;oBACpC,oEAAoE;oBACpE,sCAAsC;oBACtC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBACvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC1C,CAAC;wBACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;wBAE1C,IAAI,CAAC,KAAK,CACR,6BAA6B,GAAG,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;wBACF,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACnD,IAAI,CAAC,KAAK,CACR,0FAA0F;yBACvF,MAAM,CACV,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,MAAM,CAAC,CAAC;oBACpE,IAAI,CAAC,KAAK,CACR,uFAAuF;yBACpF,MAAM,CACV,CAAC;oBACF,wFAAwF;oBACxF,YAAY;oBACZ,sCAAsC;oBACtC,qDAAqD;oBACrD,uDAAuD;oBACvD,KAAK;oBACL,8EAA8E;oBAC9E,cAAc;oBACd,OAAO;gBACT,CAAC;gBAED,wCAAwC;gBACxC,IAAI,mBAAmB,GAAG,IAAI,CAAC,2BAA2B,CACxD,IAAI,CAAC,gBAAgB,CACtB,CAAC,CAAC,cAAc;gBAEjB,sCAAsC;gBACtC,2CAA2C;gBAC3C,yBAAyB;gBACzB,kCAAkC;gBAClC,OAAO;gBACP,uBAAuB;gBACvB,yCAAyC;gBACzC,OAAO;gBACP,KAAK;gBAEL,8GAA8G;gBAC9G,WAAW,CAAC,SAAS,CACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAChB,IAAI,iBAAO,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CACnD,CAAC;gBAEF,mCAAmC;gBACnC;;;;;;;;;oBASI;gBACJ,GAAG;YACL,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,GAAG,IAAI;QACnB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,GAAG,CAAC,GAAG,IAAI;QACjB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,2BAA2B,CAAC,gBAAwB;QAC1D,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC9C,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,mDAAmD;QACnD,gFAAgF;QAEhF,2HAA2H;QAC3H,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAChD,yDAAyD;QACzD,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,IAAI,mBAAmB,IAAI,gBAAgB,EAAE,CAAC;YACjD,6CAA6C;YAC7C,IAAI,eAAe,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAC5D,IAAI,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CACV,OAAO,IAAI,EACX,mBAAmB;oBACjB,qDAAqD,CACxD,CAAC;gBACF,SAAS;YACX,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;YAErB,OAAO,CAAC,EAAE,EAAE,CAAC;gBACX,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEpB,qBAAqB;gBACrB,IAAI,WAAW,GAAY,IAAI,IAAI,EAAE,CAAC;gBAEtC,mDAAmD;gBACnD,IACE,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC9C,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,EAClD,CAAC;oBACD,IAAI,WAAW,GACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;wBAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;oBACjC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1C,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;wBAChC,wDAAwD;wBACxD,IACE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;4BAC9B,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;4BACnC,CAAC,SAAS,CAAC,UAAU,CAAC,EACtB,CAAC;4BACD,6FAA6F;4BAC7F,uFAAuF;4BACvF,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC,CAAC;4BAC3D,IAAI,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC;4BAC/B,IAAI,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;4BACjE,0DAA0D;4BAC1D,wCAAwC;4BAExC,IAAI,CAAC,KAAK,CACR,SAAS,GAAG,gBAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,MAAM,GAAG,gBAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAC1C,CAAC;4BACF,SAAS,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,oBAAoB;gBACpB,oFAAoF;gBAEpF,kFAAkF;gBAClF,WAAW;oBACT,WAAW,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElE,2CAA2C;gBAC3C,IACE,CAAC,WAAW;oBACZ,IAAI,CAAC,kBAAkB;oBACvB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EACjC,CAAC;oBACD,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACxC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;gBACJ,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;oBAChD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBACpC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,SAAS;oBACT,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,+LAA+L;YAC/L,IAAI,oBAAoB,GAAG,mBAAmB;iBAC3C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;iBACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,iBAAiB,GAAG,aAAa,GAAG,GAAG,GAAG,oBAAoB,CAAC;YACnE,mCAAmC;YACnC,YAAY;gBACV,kBAAkB;oBAClB,iBAAiB;oBACjB,SAAS;oBACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;oBAClB,SAAS,CAAC;YACZ,IAAI,CAAC,KAAK,CACR,kBAAkB;gBAChB,gBAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBAChC,QAAQ;gBACR,gBAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CACnC,CAAC;QACJ,CAAC;QAED,KAAK,IAAI,kBAAkB,IAAI,SAAS,EAAE,CAAC;YACzC,IAAI,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACvD,IAAI,eAAe,GACjB,aAAa;gBACb,GAAG;gBACH,kBAAkB;qBACf,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;qBACvB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;qBACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CACR,YAAY;gBACV,gBAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBAC/B,QAAQ;gBACR,gBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CACjC,CAAC;YAEF,iGAAiG;YACjG,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,IAAI,MAAM,CAAC,QAAQ,GAAG,kBAAkB,GAAG,QAAQ,EAAE,GAAG,CAAC,EACzD,GAAG,GAAG,eAAe,GAAG,GAAG,CAC5B,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,GACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAE3D,IAAI,CAAC,KAAK,CACR,kBAAkB;YAChB,gBAAM,CAAC,MAAM,CAAC,eAAe,CAAC;YAC9B,QAAQ;YACR,gBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAC7C,CAAC;QACF,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,GAAG,GAAG,eAAe,GAAG,GAAG,EAC3B,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,GAAG,CACxC,CAAC;QAEF,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,6EAA6E;gBAC7E,IAAI,CAAC,KAAK,CACR,kBAAkB;oBAChB,QAAQ;oBACR,QAAQ;oBACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC/B,CAAC;gBACF,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC7B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAlUD,oCAkUC"}