@vaadin/hilla-generator-utils 24.7.0-alpha9 → 24.7.0-beta1

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 (54) hide show
  1. package/LoggerFactory.d.ts +7 -8
  2. package/LoggerFactory.js +24 -32
  3. package/LoggerFactory.js.map +1 -7
  4. package/PluginError.d.ts +1 -2
  5. package/PluginError.js +5 -8
  6. package/PluginError.js.map +1 -7
  7. package/ast.d.ts +1 -2
  8. package/ast.js +30 -39
  9. package/ast.js.map +1 -7
  10. package/createFullyUniqueIdentifier.d.ts +1 -2
  11. package/createFullyUniqueIdentifier.js +8 -11
  12. package/createFullyUniqueIdentifier.js.map +1 -7
  13. package/createSourceFile.d.ts +1 -2
  14. package/createSourceFile.js +5 -8
  15. package/createSourceFile.js.map +1 -7
  16. package/dependencies/CodeConvertable.d.ts +2 -2
  17. package/dependencies/DependencyManager.d.ts +7 -8
  18. package/dependencies/DependencyManager.js +10 -13
  19. package/dependencies/DependencyManager.js.map +1 -7
  20. package/dependencies/ExportManager.d.ts +33 -34
  21. package/dependencies/ExportManager.js +115 -136
  22. package/dependencies/ExportManager.js.map +1 -7
  23. package/dependencies/ImportManager.d.ts +45 -46
  24. package/dependencies/ImportManager.js +202 -232
  25. package/dependencies/ImportManager.js.map +1 -7
  26. package/dependencies/PathManager.d.ts +9 -10
  27. package/dependencies/PathManager.js +37 -43
  28. package/dependencies/PathManager.js.map +1 -7
  29. package/dependencies/StatementRecordManager.d.ts +9 -10
  30. package/dependencies/StatementRecordManager.js +22 -25
  31. package/dependencies/StatementRecordManager.js.map +1 -7
  32. package/dependencies/utils.d.ts +3 -4
  33. package/dependencies/utils.js +6 -9
  34. package/dependencies/utils.js.map +1 -7
  35. package/memoize.d.ts +0 -1
  36. package/memoize.js +11 -14
  37. package/memoize.js.map +1 -7
  38. package/package.json +7 -26
  39. package/testing/snapshotMatcher.d.ts +5 -6
  40. package/testing/snapshotMatcher.js +23 -29
  41. package/testing/snapshotMatcher.js.map +1 -7
  42. package/LoggerFactory.d.ts.map +0 -1
  43. package/PluginError.d.ts.map +0 -1
  44. package/ast.d.ts.map +0 -1
  45. package/createFullyUniqueIdentifier.d.ts.map +0 -1
  46. package/createSourceFile.d.ts.map +0 -1
  47. package/dependencies/DependencyManager.d.ts.map +0 -1
  48. package/dependencies/ExportManager.d.ts.map +0 -1
  49. package/dependencies/ImportManager.d.ts.map +0 -1
  50. package/dependencies/PathManager.d.ts.map +0 -1
  51. package/dependencies/StatementRecordManager.d.ts.map +0 -1
  52. package/dependencies/utils.d.ts.map +0 -1
  53. package/memoize.d.ts.map +0 -1
  54. package/testing/snapshotMatcher.d.ts.map +0 -1
@@ -1,13 +1,12 @@
1
- import type { Statement } from 'typescript';
2
- import type CodeConvertable from './CodeConvertable.js';
1
+ import type { Statement } from "typescript";
2
+ import type CodeConvertable from "./CodeConvertable.js";
3
3
  export type StatementRecord<T extends Statement> = readonly [path: string, declaration: T];
4
4
  export default abstract class StatementRecordManager<T extends Statement> implements CodeConvertable<readonly T[]> {
5
- #private;
6
- static createComparator<T extends Statement>(collator: Intl.Collator): (recordA: StatementRecord<T>, recordB: StatementRecord<T>) => number;
7
- ['constructor']: typeof StatementRecordManager;
8
- constructor(collator: Intl.Collator);
9
- abstract statementRecords(): IterableIterator<StatementRecord<T>>;
10
- toCode(): readonly T[];
11
- abstract clear(): void;
5
+ #private;
6
+ static createComparator<T extends Statement>(collator: Intl.Collator): (recordA: StatementRecord<T>, recordB: StatementRecord<T>) => number;
7
+ ["constructor"]: typeof StatementRecordManager;
8
+ constructor(collator: Intl.Collator);
9
+ abstract statementRecords(): IterableIterator<StatementRecord<T>>;
10
+ toCode(): readonly T[];
11
+ abstract clear(): void;
12
12
  }
13
- //# sourceMappingURL=StatementRecordManager.d.ts.map
@@ -1,26 +1,23 @@
1
- class StatementRecordManager {
2
- static createComparator(collator) {
3
- return ([pathA], [pathB]) => {
4
- if (pathA.startsWith(".") && !pathB.startsWith(".")) {
5
- return 1;
6
- }
7
- if (!pathA.startsWith(".") && pathB.startsWith(".")) {
8
- return -1;
9
- }
10
- return collator.compare(pathA, pathB);
11
- };
12
- }
13
- #collator;
14
- constructor(collator) {
15
- this.#collator = collator;
16
- }
17
- toCode() {
18
- const records = [...this.statementRecords()];
19
- records.sort(this.constructor.createComparator(this.#collator));
20
- return records.map(([, statement]) => statement);
21
- }
1
+ export default class StatementRecordManager {
2
+ static createComparator(collator) {
3
+ return ([pathA], [pathB]) => {
4
+ if (pathA.startsWith(".") && !pathB.startsWith(".")) {
5
+ return 1;
6
+ }
7
+ if (!pathA.startsWith(".") && pathB.startsWith(".")) {
8
+ return -1;
9
+ }
10
+ return collator.compare(pathA, pathB);
11
+ };
12
+ }
13
+ #collator;
14
+ constructor(collator) {
15
+ this.#collator = collator;
16
+ }
17
+ toCode() {
18
+ const records = [...this.statementRecords()];
19
+ records.sort(this.constructor.createComparator(this.#collator));
20
+ return records.map(([, statement]) => statement);
21
+ }
22
22
  }
23
- export {
24
- StatementRecordManager as default
25
- };
26
- //# sourceMappingURL=StatementRecordManager.js.map
23
+ //# sourceMappingURL=./StatementRecordManager.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/dependencies/StatementRecordManager.ts"],
4
- "sourcesContent": ["import type { Statement } from 'typescript';\nimport type CodeConvertable from './CodeConvertable.js';\n\nexport type StatementRecord<T extends Statement> = readonly [path: string, declaration: T];\n\nexport default abstract class StatementRecordManager<T extends Statement> implements CodeConvertable<readonly T[]> {\n static createComparator<T extends Statement>(\n collator: Intl.Collator,\n ): (recordA: StatementRecord<T>, recordB: StatementRecord<T>) => number {\n return ([pathA], [pathB]) => {\n if (pathA.startsWith('.') && !pathB.startsWith('.')) {\n return 1;\n }\n\n if (!pathA.startsWith('.') && pathB.startsWith('.')) {\n return -1;\n }\n\n return collator.compare(pathA, pathB);\n };\n }\n\n declare ['constructor']: typeof StatementRecordManager;\n readonly #collator: Intl.Collator;\n\n constructor(collator: Intl.Collator) {\n this.#collator = collator;\n }\n\n abstract statementRecords(): IterableIterator<StatementRecord<T>>;\n\n toCode(): readonly T[] {\n const records = [...this.statementRecords()];\n records.sort(this.constructor.createComparator(this.#collator));\n\n return records.map(([, statement]) => statement);\n }\n\n abstract clear(): void;\n}\n"],
5
- "mappings": "AAKA,MAAO,uBAA4G;AAAA,EACjH,OAAO,iBACL,UACsE;AACtE,WAAO,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,MAAM;AAC3B,UAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,WAAW,GAAG,GAAG;AACnD,eAAO;AAAA,MACT;AAEA,UAAI,CAAC,MAAM,WAAW,GAAG,KAAK,MAAM,WAAW,GAAG,GAAG;AACnD,eAAO;AAAA,MACT;AAEA,aAAO,SAAS,QAAQ,OAAO,KAAK;AAAA,IACtC;AAAA,EACF;AAAA,EAGS;AAAA,EAET,YAAY,UAAyB;AACnC,SAAK,YAAY;AAAA,EACnB;AAAA,EAIA,SAAuB;AACrB,UAAM,UAAU,CAAC,GAAG,KAAK,iBAAiB,CAAC;AAC3C,YAAQ,KAAK,KAAK,YAAY,iBAAiB,KAAK,SAAS,CAAC;AAE9D,WAAO,QAAQ,IAAI,CAAC,CAAC,EAAE,SAAS,MAAM,SAAS;AAAA,EACjD;AAGF;",
6
- "names": []
7
- }
1
+ {"mappings":"AAKA,eAAe,MAAe,uBAAqF;CACjH,OAAO,iBACLA,UACsE;AACtE,SAAO,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK;AAC3B,OAAI,MAAM,WAAW,IAAI,KAAK,MAAM,WAAW,IAAI,EAAE;AACnD,WAAO;GACR;AAED,QAAK,MAAM,WAAW,IAAI,IAAI,MAAM,WAAW,IAAI,EAAE;AACnD,YAAQ;GACT;AAED,UAAO,SAAS,QAAQ,OAAO,MAAM;EACtC;CACF;CAGD,AAASC;CAET,YAAYD,UAAyB;AACnC,OAAKC,YAAY;CAClB;CAID,SAAuB;EACrB,MAAM,UAAU,CAAC,GAAG,KAAK,kBAAkB,AAAC;AAC5C,UAAQ,KAAK,KAAK,YAAY,iBAAiB,KAAKA,UAAU,CAAC;AAE/D,SAAO,QAAQ,IAAI,CAAC,GAAG,UAAU,KAAK,UAAU;CACjD;AAGF","names":["collator: Intl.Collator","#collator"],"sources":["/opt/agent/work/1af72d8adc613024/hilla/packages/ts/generator-utils/src/dependencies/StatementRecordManager.ts"],"sourcesContent":["import type { Statement } from 'typescript';\nimport type CodeConvertable from './CodeConvertable.js';\n\nexport type StatementRecord<T extends Statement> = readonly [path: string, declaration: T];\n\nexport default abstract class StatementRecordManager<T extends Statement> implements CodeConvertable<readonly T[]> {\n static createComparator<T extends Statement>(\n collator: Intl.Collator,\n ): (recordA: StatementRecord<T>, recordB: StatementRecord<T>) => number {\n return ([pathA], [pathB]) => {\n if (pathA.startsWith('.') && !pathB.startsWith('.')) {\n return 1;\n }\n\n if (!pathA.startsWith('.') && pathB.startsWith('.')) {\n return -1;\n }\n\n return collator.compare(pathA, pathB);\n };\n }\n\n declare ['constructor']: typeof StatementRecordManager;\n readonly #collator: Intl.Collator;\n\n constructor(collator: Intl.Collator) {\n this.#collator = collator;\n }\n\n abstract statementRecords(): IterableIterator<StatementRecord<T>>;\n\n toCode(): readonly T[] {\n const records = [...this.statementRecords()];\n records.sort(this.constructor.createComparator(this.#collator));\n\n return records.map(([, statement]) => statement);\n }\n\n abstract clear(): void;\n}\n"],"version":3}
@@ -1,7 +1,6 @@
1
- import type { Identifier } from 'typescript';
1
+ import type { Identifier } from "typescript";
2
2
  export type DependencyRecord = Readonly<{
3
- id: Identifier;
4
- isType: boolean;
3
+ id: Identifier
4
+ isType: boolean
5
5
  }>;
6
6
  export declare function createDependencyRecord(id: Identifier, isType?: boolean): DependencyRecord;
7
- //# sourceMappingURL=utils.d.ts.map
@@ -1,10 +1,7 @@
1
- function createDependencyRecord(id, isType = false) {
2
- return {
3
- id,
4
- isType
5
- };
1
+ export function createDependencyRecord(id, isType = false) {
2
+ return {
3
+ id,
4
+ isType
5
+ };
6
6
  }
7
- export {
8
- createDependencyRecord
9
- };
10
- //# sourceMappingURL=utils.js.map
7
+ //# sourceMappingURL=./utils.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/dependencies/utils.ts"],
4
- "sourcesContent": ["import type { Identifier } from 'typescript';\n\nexport type DependencyRecord = Readonly<{\n id: Identifier;\n isType: boolean;\n}>;\n\nexport function createDependencyRecord(id: Identifier, isType = false): DependencyRecord {\n return {\n id,\n isType,\n };\n}\n"],
5
- "mappings": "AAOO,SAAS,uBAAuB,IAAgB,SAAS,OAAyB;AACvF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
6
- "names": []
7
- }
1
+ {"mappings":"AAOA,OAAO,SAAS,uBAAuBA,IAAgB,SAAS,OAAyB;AACvF,QAAO;EACL;EACA;CACD;AACF","names":["id: Identifier"],"sources":["/opt/agent/work/1af72d8adc613024/hilla/packages/ts/generator-utils/src/dependencies/utils.ts"],"sourcesContent":["import type { Identifier } from 'typescript';\n\nexport type DependencyRecord = Readonly<{\n id: Identifier;\n isType: boolean;\n}>;\n\nexport function createDependencyRecord(id: Identifier, isType = false): DependencyRecord {\n return {\n id,\n isType,\n };\n}\n"],"version":3}
package/memoize.d.ts CHANGED
@@ -1,2 +1 @@
1
1
  export default function memoize<T>(func: () => T): () => T;
2
- //# sourceMappingURL=memoize.d.ts.map
package/memoize.js CHANGED
@@ -1,15 +1,12 @@
1
- function memoize(func) {
2
- let result;
3
- let hasResult = false;
4
- return () => {
5
- if (!hasResult) {
6
- result = func();
7
- hasResult = true;
8
- }
9
- return result;
10
- };
1
+ export default function memoize(func) {
2
+ let result;
3
+ let hasResult = false;
4
+ return () => {
5
+ if (!hasResult) {
6
+ result = func();
7
+ hasResult = true;
8
+ }
9
+ return result;
10
+ };
11
11
  }
12
- export {
13
- memoize as default
14
- };
15
- //# sourceMappingURL=memoize.js.map
12
+ //# sourceMappingURL=./memoize.js.map
package/memoize.js.map CHANGED
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["src/memoize.ts"],
4
- "sourcesContent": ["export default function memoize<T>(func: () => T): () => T {\n let result: T | undefined;\n let hasResult = false;\n\n return () => {\n if (!hasResult) {\n result = func();\n hasResult = true;\n }\n return result!;\n };\n}\n"],
5
- "mappings": "AAAe,SAAR,QAA4B,MAAwB;AACzD,MAAI;AACJ,MAAI,YAAY;AAEhB,SAAO,MAAM;AACX,QAAI,CAAC,WAAW;AACd,eAAS,KAAK;AACd,kBAAY;AAAA,IACd;AACA,WAAO;AAAA,EACT;AACF;",
6
- "names": []
7
- }
1
+ {"mappings":"AAAA,eAAe,SAAS,QAAWA,MAAwB;CACzD,IAAIC;CACJ,IAAI,YAAY;AAEhB,QAAO,MAAM;AACX,OAAK,WAAW;AACd,YAAS,MAAM;AACf,eAAY;EACb;AACD,SAAO;CACR;AACF","names":["func: () => T","result: T | undefined"],"sources":["/opt/agent/work/1af72d8adc613024/hilla/packages/ts/generator-utils/src/memoize.ts"],"sourcesContent":["export default function memoize<T>(func: () => T): () => T {\n let result: T | undefined;\n let hasResult = false;\n\n return () => {\n if (!hasResult) {\n result = func();\n hasResult = true;\n }\n return result!;\n };\n}\n"],"version":3}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/hilla-generator-utils",
3
- "version": "24.7.0-alpha9",
3
+ "version": "24.7.0-beta1",
4
4
  "description": "A set of utils for developing Hilla generator plugins",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -9,14 +9,12 @@
9
9
  },
10
10
  "scripts": {
11
11
  "clean:build": "git clean -fx . -e .vite -e node_modules",
12
- "build": "concurrently npm:build:*",
13
- "build:esbuild": "tsx ../../../scripts/build.ts",
14
- "build:dts": "tsc --isolatedModules -p tsconfig.build.json",
15
- "build:copy": "cd src && copyfiles **/*.d.ts ..",
12
+ "build": "tsx ../../../scripts/fast-build.ts",
16
13
  "lint": "eslint src test",
17
14
  "lint:fix": "eslint src test --fix",
18
- "test": "mocha test/**/*.spec.ts --config ../../../.mocharc.cjs",
19
- "test:coverage": "c8 --experimental-monocart -c ../../../.c8rc.json npm test",
15
+ "test": "vitest --run",
16
+ "test:coverage": "vitest --run --coverage",
17
+ "test:watch": "vitest",
20
18
  "typecheck": "tsc --noEmit"
21
19
  },
22
20
  "exports": {
@@ -57,25 +55,8 @@
57
55
  "access": "public"
58
56
  },
59
57
  "dependencies": {
60
- "pino": "^9.6.0",
61
- "pino-pretty": "^10.3.1",
58
+ "pino": "9.6.0",
59
+ "pino-pretty": "10.3.1",
62
60
  "typescript": "5.7.3"
63
- },
64
- "devDependencies": {
65
- "@types/chai": "^4.3.20",
66
- "@types/mocha": "^10.0.10",
67
- "@types/node": "^20.17.12",
68
- "@types/sinon": "^10.0.20",
69
- "@types/sinon-chai": "^3.2.12",
70
- "c8": "^10.1.3",
71
- "chai": "^4.5.0",
72
- "chai-like": "^1.1.3",
73
- "concurrently": "^9.1.2",
74
- "copyfiles": "^2.4.1",
75
- "mocha": "^11.1.0",
76
- "monocart-coverage-reports": "^2.11.5",
77
- "sinon": "^16.1.3",
78
- "sinon-chai": "^3.7.0",
79
- "type-fest": "^4.32.0"
80
61
  }
81
62
  }
@@ -1,9 +1,8 @@
1
1
  declare global {
2
- export namespace Chai {
3
- interface Assertion {
4
- toMatchSnapshot(snapshotName: string, importMetaUrl: string): Promise<void>;
5
- }
6
- }
2
+ export namespace Chai {
3
+ interface Assertion {
4
+ toMatchSnapshot(snapshotName: string, importMetaUrl: string): Promise<void>;
5
+ }
6
+ }
7
7
  }
8
8
  export default function snapshotMatcher(chai: Chai.ChaiStatic, utils: Chai.ChaiUtils): void;
9
- //# sourceMappingURL=snapshotMatcher.d.ts.map
@@ -2,33 +2,27 @@ import { readFile, writeFile } from "node:fs/promises";
2
2
  import { fileURLToPath } from "node:url";
3
3
  const argv = process.argv.slice(2);
4
4
  const shouldUpdate = argv.includes("-u") || argv.includes("--update");
5
- function snapshotMatcher(chai, utils) {
6
- utils.addMethod(
7
- chai.Assertion.prototype,
8
- "toMatchSnapshot",
9
- // eslint-disable-next-line prefer-arrow-callback
10
- async function toMatchSnapshot(snapshotName, importMetaUrl) {
11
- const obj = utils.flag(this, "object");
12
- const snapshotURL = new URL(`./fixtures/${snapshotName}`, importMetaUrl);
13
- const snapshotPath = fileURLToPath(snapshotURL);
14
- if (shouldUpdate) {
15
- await writeFile(snapshotPath, obj, "utf8");
16
- } else {
17
- let snapshot;
18
- try {
19
- snapshot = await readFile(snapshotPath, "utf8");
20
- } catch (e) {
21
- throw new Error(
22
- `Snapshot does not exist yet: ${snapshotURL.toString()}.
23
- Consider running tests with --update flag.`
24
- );
25
- }
26
- chai.assert.equal(obj, snapshot);
27
- }
28
- }
29
- );
5
+ export default function snapshotMatcher(chai, utils) {
6
+ utils.addMethod(
7
+ chai.Assertion.prototype,
8
+ "toMatchSnapshot",
9
+ // eslint-disable-next-line prefer-arrow-callback
10
+ async function toMatchSnapshot(snapshotName, importMetaUrl) {
11
+ const obj = utils.flag(this, "object");
12
+ const snapshotURL = new URL(`./fixtures/${snapshotName}`, importMetaUrl);
13
+ const snapshotPath = fileURLToPath(snapshotURL);
14
+ if (shouldUpdate) {
15
+ await writeFile(snapshotPath, obj, "utf8");
16
+ } else {
17
+ let snapshot;
18
+ try {
19
+ snapshot = await readFile(snapshotPath, "utf8");
20
+ } catch {
21
+ throw new Error(`Snapshot does not exist yet: ${snapshotURL.toString()}.\nConsider running tests with --update flag.`);
22
+ }
23
+ chai.assert.equal(obj, snapshot);
24
+ }
25
+ }
26
+ );
30
27
  }
31
- export {
32
- snapshotMatcher as default
33
- };
34
- //# sourceMappingURL=snapshotMatcher.js.map
28
+ //# sourceMappingURL=./snapshotMatcher.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/testing/snapshotMatcher.ts"],
4
- "sourcesContent": ["import { readFile, writeFile } from 'node:fs/promises';\nimport { fileURLToPath } from 'node:url';\n\nconst argv = process.argv.slice(2);\nconst shouldUpdate = argv.includes('-u') || argv.includes('--update');\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace Chai {\n interface Assertion {\n toMatchSnapshot(snapshotName: string, importMetaUrl: string): Promise<void>;\n }\n }\n}\n\nexport default function snapshotMatcher(chai: Chai.ChaiStatic, utils: Chai.ChaiUtils): void {\n utils.addMethod(\n chai.Assertion.prototype,\n 'toMatchSnapshot',\n // eslint-disable-next-line prefer-arrow-callback\n async function toMatchSnapshot(this: object, snapshotName: string, importMetaUrl: string): Promise<void> {\n const obj = utils.flag(this, 'object');\n const snapshotURL = new URL(`./fixtures/${snapshotName}`, importMetaUrl);\n const snapshotPath = fileURLToPath(snapshotURL);\n\n if (shouldUpdate) {\n await writeFile(snapshotPath, obj, 'utf8');\n } else {\n let snapshot;\n try {\n snapshot = await readFile(snapshotPath, 'utf8');\n } catch (e) {\n throw new Error(\n `Snapshot does not exist yet: ${snapshotURL.toString()}.\\nConsider running tests with --update flag.`,\n );\n }\n\n chai.assert.equal(obj, snapshot);\n }\n },\n );\n}\n"],
5
- "mappings": "AAAA,SAAS,UAAU,iBAAiB;AACpC,SAAS,qBAAqB;AAE9B,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;AACjC,MAAM,eAAe,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,UAAU;AAWrD,SAAR,gBAAiC,MAAuB,OAA6B;AAC1F,QAAM;AAAA,IACJ,KAAK,UAAU;AAAA,IACf;AAAA;AAAA,IAEA,eAAe,gBAA8B,cAAsB,eAAsC;AACvG,YAAM,MAAM,MAAM,KAAK,MAAM,QAAQ;AACrC,YAAM,cAAc,IAAI,IAAI,cAAc,YAAY,IAAI,aAAa;AACvE,YAAM,eAAe,cAAc,WAAW;AAE9C,UAAI,cAAc;AAChB,cAAM,UAAU,cAAc,KAAK,MAAM;AAAA,MAC3C,OAAO;AACL,YAAI;AACJ,YAAI;AACF,qBAAW,MAAM,SAAS,cAAc,MAAM;AAAA,QAChD,SAAS,GAAG;AACV,gBAAM,IAAI;AAAA,YACR,gCAAgC,YAAY,SAAS,CAAC;AAAA;AAAA,UACxD;AAAA,QACF;AAEA,aAAK,OAAO,MAAM,KAAK,QAAQ;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }
1
+ {"mappings":"AAAA,SAAS,UAAU,mCAAoC;AACvD,SAAS,+BAAgC;AAEzC,MAAM,OAAO,QAAQ,KAAK,MAAM,EAAE;AAClC,MAAM,eAAe,KAAK,SAAS,KAAK,IAAI,KAAK,SAAS,WAAW;AAWrE,eAAe,SAAS,gBAAgBA,MAAuBC,OAA6B;AAC1F,OAAM;EACJ,KAAK,UAAU;EACf;;EAEA,eAAe,gBAA8BC,cAAsBC,eAAsC;GACvG,MAAM,MAAM,MAAM,KAAK,MAAM,SAAS;GACtC,MAAM,cAAc,IAAI,KAAK,aAAa,aAAa,GAAG;GAC1D,MAAM,eAAe,cAAc,YAAY;AAE/C,OAAI,cAAc;AAChB,UAAM,UAAU,cAAc,KAAK,OAAO;GAC3C,OAAM;IACL,IAAI;AACJ,QAAI;AACF,gBAAW,MAAM,SAAS,cAAc,OAAO;IAChD,QAAO;AACN,WAAM,IAAI,OACP,+BAA+B,YAAY,UAAU,CAAC;IAE1D;AAED,SAAK,OAAO,MAAM,KAAK,SAAS;GACjC;EACF;CACF;AACF","names":["chai: Chai.ChaiStatic","utils: Chai.ChaiUtils","snapshotName: string","importMetaUrl: string"],"sources":["/opt/agent/work/1af72d8adc613024/hilla/packages/ts/generator-utils/src/testing/snapshotMatcher.ts"],"sourcesContent":["import { readFile, writeFile } from 'node:fs/promises';\nimport { fileURLToPath } from 'node:url';\n\nconst argv = process.argv.slice(2);\nconst shouldUpdate = argv.includes('-u') || argv.includes('--update');\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace Chai {\n interface Assertion {\n toMatchSnapshot(snapshotName: string, importMetaUrl: string): Promise<void>;\n }\n }\n}\n\nexport default function snapshotMatcher(chai: Chai.ChaiStatic, utils: Chai.ChaiUtils): void {\n utils.addMethod(\n chai.Assertion.prototype,\n 'toMatchSnapshot',\n // eslint-disable-next-line prefer-arrow-callback\n async function toMatchSnapshot(this: object, snapshotName: string, importMetaUrl: string): Promise<void> {\n const obj = utils.flag(this, 'object');\n const snapshotURL = new URL(`./fixtures/${snapshotName}`, importMetaUrl);\n const snapshotPath = fileURLToPath(snapshotURL);\n\n if (shouldUpdate) {\n await writeFile(snapshotPath, obj, 'utf8');\n } else {\n let snapshot;\n try {\n snapshot = await readFile(snapshotPath, 'utf8');\n } catch {\n throw new Error(\n `Snapshot does not exist yet: ${snapshotURL.toString()}.\\nConsider running tests with --update flag.`,\n );\n }\n\n chai.assert.equal(obj, snapshot);\n }\n },\n );\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoggerFactory.d.ts","sourceRoot":"","sources":["src/LoggerFactory.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAGzC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,aAAa;;gBAIpB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa;IAe5C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAS5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginError.d.ts","sourceRoot":"","sources":["src/PluginError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,UAAU,SAA6B;CAGrE"}
package/ast.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["src/ast.ts"],"names":[],"mappings":"AAAA,OAAW,EACT,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,KAAK,CAAC,CAAC;AAE1E,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,GAC3D,SAAS,SAAS,EAAE,CAAC;AACxB,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,YAAY,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,GAC3D,CAAC,CAAC;AA2BL,wBAAgB,SAAS,CAAC,CAAC,SAAS,IAAI,EACtC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,GACzD,kBAAkB,CAAC,CAAC,CAAC,CAavB;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAM1G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createFullyUniqueIdentifier.d.ts","sourceRoot":"","sources":["src/createFullyUniqueIdentifier.ts"],"names":[],"mappings":"AAAA,OAAW,EAAE,KAAK,wBAAwB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,wBAAwB,GAAG,UAAU,CAM9G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSourceFile.d.ts","sourceRoot":"","sources":["src/createSourceFile.ts"],"names":[],"mappings":"AAAA,OAAW,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAGvG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyManager.d.ts","sourceRoot":"","sources":["../src/dependencies/DependencyManager.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;gBAEhB,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAE,IAAI,CAAC,QAA2D;CAK3G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExportManager.d.ts","sourceRoot":"","sources":["../src/dependencies/ExportManager.ts"],"names":[],"mappings":"AAAA,OAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAC;AACxD,OAAO,sBAAsB,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG3F,qBAAa,kBAAmB,YAAW,eAAe,CAAC,iBAAiB,GAAG,SAAS,CAAC;;IAIvF,IAAI,IAAI,IAAI,MAAM,CAEjB;gBAEW,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAInC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU;IAMtE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIlD,WAAW,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAM5E,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIzC,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIjC,MAAM,IAAI,iBAAiB,GAAG,SAAS;CAqBxC;AAED,qBAAa,sBAAuB,SAAQ,sBAAsB,CAAC,iBAAiB,CAAC;;IAGnF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU;IAM1E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpB,KAAK,IAAI,IAAI;IAItB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS;IAI1D,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC;IAIlD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI7C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIvB,gBAAgB,IAAI,gBAAgB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;CAanF;AAED,qBAAa,oBAAqB,YAAW,eAAe,CAAC,gBAAgB,GAAG,SAAS,CAAC;;IAGxF,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,GAAG,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAKxC,MAAM,IAAI,gBAAgB,GAAG,SAAS;CAGvC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,eAAe,CAAC,SAAS,SAAS,EAAE,CAAC;IACjF,QAAQ,CAAC,OAAO,uBAA8B;IAC9C,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAE3C,IAAI,IAAI,IAAI,MAAM,CAEjB;gBAEW,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAKnC,MAAM,IAAI,SAAS,SAAS,EAAE;CAmB/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportManager.d.ts","sourceRoot":"","sources":["../src/dependencies/ImportManager.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PathManager.d.ts","sourceRoot":"","sources":["../src/dependencies/PathManager.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,WAAW;;gBAGlB,OAAO,CAAC,EAAE,kBAAkB;IAcxC,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM;IAU1D,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,eAA2B,GAAG,MAAM;IAgB7G,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,qBAA0B,GAAG,MAAM;CAG9E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatementRecordManager.d.ts","sourceRoot":"","sources":["../src/dependencies/StatementRecordManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAC;AAExD,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAE3F,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,sBAAsB,CAAC,CAAC,SAAS,SAAS,CAAE,YAAW,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;;IAChH,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,SAAS,EACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACtB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM;IAc/D,CAAC,aAAa,CAAC,EAAE,OAAO,sBAAsB,CAAC;gBAG3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAInC,QAAQ,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAEjE,MAAM,IAAI,SAAS,CAAC,EAAE;IAOtB,QAAQ,CAAC,KAAK,IAAI,IAAI;CACvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/dependencies/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,UAAQ,GAAG,gBAAgB,CAKvF"}
package/memoize.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["src/memoize.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAWzD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshotMatcher.d.ts","sourceRoot":"","sources":["../src/testing/snapshotMatcher.ts"],"names":[],"mappings":"AAMA,OAAO,CAAC,MAAM,CAAC;IAEb,MAAM,WAAW,IAAI,CAAC;QACpB,UAAU,SAAS;YACjB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7E;KACF;CACF;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CA0B1F"}