pipework 0.7.21 → 0.7.23
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.
- package/CHANGELOG.md +30 -0
- package/REFERENCE.md +66 -2
- package/dist/REFERENCE.md +66 -2
- package/dist/async/jobs/queue.d.ts +1 -0
- package/dist/async/jobs/queue.d.ts.map +1 -1
- package/dist/async/jobs/queue.js +2 -1
- package/dist/async/jobs/queue.js.map +1 -1
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +23 -0
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/db.d.ts +10 -0
- package/dist/cli/commands/db.d.ts.map +1 -0
- package/dist/cli/commands/db.js +235 -0
- package/dist/cli/commands/db.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +19 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config/namespace.d.ts +1 -0
- package/dist/core/config/namespace.d.ts.map +1 -1
- package/dist/core/config/schema.d.ts +2 -0
- package/dist/core/config/schema.d.ts.map +1 -1
- package/dist/core/config/schema.js +1 -0
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/pipework.d.ts.map +1 -1
- package/dist/core/pipework.js +27 -1
- package/dist/core/pipework.js.map +1 -1
- package/dist/core/surface/types.d.ts +7 -0
- package/dist/core/surface/types.d.ts.map +1 -1
- package/dist/core/surface/worker.d.ts.map +1 -1
- package/dist/core/surface/worker.js +60 -1
- package/dist/core/surface/worker.js.map +1 -1
- package/dist/data/db/advisory-lock.d.ts +6 -1
- package/dist/data/db/advisory-lock.d.ts.map +1 -1
- package/dist/data/db/advisory-lock.js +20 -7
- package/dist/data/db/advisory-lock.js.map +1 -1
- package/dist/data/db/bulk-set.d.ts.map +1 -1
- package/dist/data/db/bulk-set.js +12 -20
- package/dist/data/db/bulk-set.js.map +1 -1
- package/dist/data/db/composed.d.ts +23 -0
- package/dist/data/db/composed.d.ts.map +1 -0
- package/dist/data/db/composed.js +42 -0
- package/dist/data/db/composed.js.map +1 -0
- package/dist/data/db/expressions.d.ts +32 -0
- package/dist/data/db/expressions.d.ts.map +1 -1
- package/dist/data/db/expressions.js +67 -0
- package/dist/data/db/expressions.js.map +1 -1
- package/dist/data/db/filter.d.ts +22 -1
- package/dist/data/db/filter.d.ts.map +1 -1
- package/dist/data/db/filter.js +22 -1
- package/dist/data/db/filter.js.map +1 -1
- package/dist/data/db/namespace.d.ts +27 -0
- package/dist/data/db/namespace.d.ts.map +1 -1
- package/dist/data/db/namespace.js +6 -0
- package/dist/data/db/namespace.js.map +1 -1
- package/dist/data/db/serializable.d.ts +8 -0
- package/dist/data/db/serializable.d.ts.map +1 -0
- package/dist/data/db/serializable.js +44 -0
- package/dist/data/db/serializable.js.map +1 -0
- package/dist/data/db/values.d.ts +10 -0
- package/dist/data/db/values.d.ts.map +1 -0
- package/dist/data/db/values.js +20 -0
- package/dist/data/db/values.js.map +1 -0
- package/dist/data/domain/field.d.ts +1 -0
- package/dist/data/domain/field.d.ts.map +1 -1
- package/dist/data/domain/field.js +4 -0
- package/dist/data/domain/field.js.map +1 -1
- package/dist/data/domain/project-table.js +6 -1
- package/dist/data/domain/project-table.js.map +1 -1
- package/dist/data/domain/types.d.ts +1 -1
- package/dist/data/domain/types.d.ts.map +1 -1
- package/dist/data/jsonb/composed.d.ts +8 -0
- package/dist/data/jsonb/composed.d.ts.map +1 -0
- package/dist/data/jsonb/composed.js +15 -0
- package/dist/data/jsonb/composed.js.map +1 -0
- package/dist/data/jsonb/namespace.d.ts +12 -1
- package/dist/data/jsonb/namespace.d.ts.map +1 -1
- package/dist/data/jsonb/namespace.js +12 -1
- package/dist/data/jsonb/namespace.js.map +1 -1
- package/dist/data/jsonb/query.d.ts +4 -0
- package/dist/data/jsonb/query.d.ts.map +1 -1
- package/dist/data/jsonb/query.js +21 -0
- package/dist/data/jsonb/query.js.map +1 -1
- package/dist/data/temporal/close.d.ts.map +1 -1
- package/dist/data/temporal/close.js +3 -2
- package/dist/data/temporal/close.js.map +1 -1
- package/dist/data/temporal/get-current.d.ts.map +1 -1
- package/dist/data/temporal/get-current.js +2 -1
- package/dist/data/temporal/get-current.js.map +1 -1
- package/dist/data/temporal/revise.d.ts.map +1 -1
- package/dist/data/temporal/revise.js +8 -11
- package/dist/data/temporal/revise.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lint/config.d.ts +1 -0
- package/dist/lint/config.d.ts.map +1 -1
- package/dist/lint/config.js +5 -4
- package/dist/lint/config.js.map +1 -1
- package/dist/lint/rules/no-reexports.d.ts +3 -0
- package/dist/lint/rules/no-reexports.d.ts.map +1 -0
- package/dist/lint/rules/no-reexports.js +43 -0
- package/dist/lint/rules/no-reexports.js.map +1 -0
- package/dist/workspace/check-deps.d.ts +12 -0
- package/dist/workspace/check-deps.d.ts.map +1 -0
- package/dist/workspace/check-deps.js +183 -0
- package/dist/workspace/check-deps.js.map +1 -0
- package/dist/workspace/generate.d.ts.map +1 -1
- package/dist/workspace/generate.js +29 -0
- package/dist/workspace/generate.js.map +1 -1
- package/dist/workspace/sync.d.ts.map +1 -1
- package/dist/workspace/sync.js +4 -1
- package/dist/workspace/sync.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { sql } from '../db/sql.js';
|
|
2
2
|
import { getTableName } from '../db/generated/drizzle-orm/introspection.js';
|
|
3
|
+
import { identifier, now } from '../db/expressions.js';
|
|
3
4
|
import { TemporalIntegrityError } from './errors.js';
|
|
4
|
-
import { assertValidIdentifier
|
|
5
|
+
import { assertValidIdentifier } from '../db/identifiers.js';
|
|
5
6
|
export async function revise(options) {
|
|
6
7
|
const { tx, where, data, userId } = options;
|
|
7
8
|
const table = typeof options.table === 'string' ? options.table : getTableName(options.table);
|
|
8
|
-
const current = await tx.execute(sql `SELECT id, version FROM ${
|
|
9
|
+
const current = await tx.execute(sql `SELECT id, version FROM ${identifier(table)} WHERE ${where} AND effective_to IS NULL FOR UPDATE`);
|
|
9
10
|
if (current.length === 0) {
|
|
10
11
|
throw new TemporalIntegrityError(`No current version found. Cannot revise a record in "${table}" — ` +
|
|
11
12
|
`ensure the entity exists and has an open version (effective_to IS NULL).`, { table });
|
|
@@ -17,14 +18,14 @@ export async function revise(options) {
|
|
|
17
18
|
const currentRow = current[0];
|
|
18
19
|
const currentId = currentRow['id'];
|
|
19
20
|
const currentVersion = currentRow['version'];
|
|
20
|
-
await tx.execute(sql `UPDATE ${
|
|
21
|
+
await tx.execute(sql `UPDATE ${identifier(table)} SET effective_to = ${now()} WHERE id = ${currentId}::uuid`);
|
|
21
22
|
const columns = Object.keys(data);
|
|
22
23
|
const values = Object.values(data);
|
|
23
24
|
for (const col of columns) {
|
|
24
25
|
assertValidIdentifier(col, 'column');
|
|
25
26
|
}
|
|
26
27
|
const allColumns = [...columns, 'effective_from', 'effective_to', 'version', 'created_by'];
|
|
27
|
-
const
|
|
28
|
+
const colIdentifiers = allColumns.map(c => identifier(c));
|
|
28
29
|
const serializedValues = values.map((v) => {
|
|
29
30
|
if (v === null || v === undefined)
|
|
30
31
|
return null;
|
|
@@ -34,18 +35,14 @@ export async function revise(options) {
|
|
|
34
35
|
});
|
|
35
36
|
const valueParts = [
|
|
36
37
|
...serializedValues.map((v) => sql `${v ?? null}`),
|
|
37
|
-
|
|
38
|
+
now(),
|
|
38
39
|
sql `NULL`,
|
|
39
40
|
sql `${currentVersion + 1}`,
|
|
40
41
|
sql `${userId ?? null}`,
|
|
41
42
|
];
|
|
42
|
-
const valuesList =
|
|
43
|
-
if (i === 0)
|
|
44
|
-
return part;
|
|
45
|
-
return sql `${acc}, ${part}`;
|
|
46
|
-
});
|
|
43
|
+
const valuesList = sql.join(valueParts, sql `, `);
|
|
47
44
|
assertValidIdentifier(table, 'table');
|
|
48
|
-
const result = await tx.execute(sql `INSERT INTO ${
|
|
45
|
+
const result = await tx.execute(sql `INSERT INTO ${identifier(table)} (${sql.join(colIdentifiers, sql `, `)}) VALUES (${valuesList}) RETURNING id::text, version`);
|
|
49
46
|
const row = result[0];
|
|
50
47
|
return { id: row['id'], version: row['version'] };
|
|
51
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revise.js","sourceRoot":"","sources":["../../../src/data/temporal/revise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;
|
|
1
|
+
{"version":3,"file":"revise.js","sourceRoot":"","sources":["../../../src/data/temporal/revise.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export { createManifold } from './core/pipework.js';
|
|
|
2
2
|
export type { Manifold, PoolState, IsolationState, ConnectionTracker, SeedOptions } from './core/pipework.js';
|
|
3
3
|
export { pipe, filter, excluded } from './data/db/namespace.js';
|
|
4
4
|
export type { DB, SQL, Table, Column, TransactionConfig } from './data/db/namespace.js';
|
|
5
|
+
export type { WindowSpec } from './data/db/expressions.js';
|
|
6
|
+
export type { ValueColumnDef } from './data/db/values.js';
|
|
7
|
+
export type { SerializableOptions } from './data/db/serializable.js';
|
|
5
8
|
export type { DefinedTable, DomainDefinition, DefinitionMethods, FieldDescriptor, FieldModifiers, FieldMeta, DefineOptions, FactoryBuilder, FactoryOptions, TraitDefinition, FieldColumn, ProjectedColumns, EffectiveDatedFields, AuditedFields, SoftDeletedFields, Branded, Brand, InferSelect, InferFieldOutput } from './data/domain/index.js';
|
|
6
9
|
export { schema } from './data/schema/namespace.js';
|
|
7
10
|
export type { JsonSchema } from './data/schema/namespace.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE7G,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAW/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAIxD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAOlD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAQ/C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGnD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAI/C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAKhD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAIlD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAKxD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGnD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAIxD,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAA;AAI1D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAI1D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAIzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAKtF,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAMrD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EACtE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/lint/config.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const rules: {
|
|
|
8
8
|
readonly '@typescript-eslint/require-await': "error";
|
|
9
9
|
readonly '@typescript-eslint/no-unnecessary-condition': "error";
|
|
10
10
|
readonly '@typescript-eslint/strict-boolean-expressions': "error";
|
|
11
|
+
readonly 'pipework/no-reexports': "error";
|
|
11
12
|
};
|
|
12
13
|
export interface LintConfig {
|
|
13
14
|
readonly tsconfigRootDir?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK;;;;;;;;;;;CASR,CAAA;AAEV,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACxD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE,CA0B/D"}
|
package/dist/lint/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import tseslint from '@typescript-eslint/eslint-plugin';
|
|
2
2
|
import tsparser from '@typescript-eslint/parser';
|
|
3
|
+
import { noReexports } from './rules/no-reexports.js';
|
|
3
4
|
export const rules = {
|
|
4
5
|
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
5
6
|
'@typescript-eslint/no-explicit-any': 'error',
|
|
@@ -8,6 +9,7 @@ export const rules = {
|
|
|
8
9
|
'@typescript-eslint/require-await': 'error',
|
|
9
10
|
'@typescript-eslint/no-unnecessary-condition': 'error',
|
|
10
11
|
'@typescript-eslint/strict-boolean-expressions': 'error',
|
|
12
|
+
'pipework/no-reexports': 'error',
|
|
11
13
|
};
|
|
12
14
|
export function createLintConfig(config) {
|
|
13
15
|
const files = config?.include ?? ['src/**/*.ts'];
|
|
@@ -15,6 +17,7 @@ export function createLintConfig(config) {
|
|
|
15
17
|
if (config?.tsconfigRootDir !== undefined) {
|
|
16
18
|
parserOptions['tsconfigRootDir'] = config.tsconfigRootDir;
|
|
17
19
|
}
|
|
20
|
+
const appliedRules = { ...rules, ...config?.extraRules };
|
|
18
21
|
return [
|
|
19
22
|
{
|
|
20
23
|
files: [...files],
|
|
@@ -24,11 +27,9 @@ export function createLintConfig(config) {
|
|
|
24
27
|
},
|
|
25
28
|
plugins: {
|
|
26
29
|
'@typescript-eslint': tseslint,
|
|
30
|
+
'pipework': { rules: { 'no-reexports': noReexports } },
|
|
27
31
|
},
|
|
28
|
-
rules:
|
|
29
|
-
...rules,
|
|
30
|
-
...config?.extraRules,
|
|
31
|
-
},
|
|
32
|
+
rules: appliedRules,
|
|
32
33
|
},
|
|
33
34
|
{
|
|
34
35
|
ignores: ['dist/', 'node_modules/', ...(config?.ignores ?? [])],
|
package/dist/lint/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kCAAkC,CAAA;AACvD,OAAO,QAAQ,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kCAAkC,CAAA;AACvD,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,mCAAmC,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC3E,oCAAoC,EAAE,OAAO;IAC7C,yCAAyC,EAAE,OAAO;IAClD,wCAAwC,EAAE,OAAO;IACjD,kCAAkC,EAAE,OAAO;IAC3C,6CAA6C,EAAE,OAAO;IACtD,+CAA+C,EAAE,OAAO;IACxD,uBAAuB,EAAE,OAAO;CACxB,CAAA;AASV,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAA;IAChD,MAAM,aAAa,GAA4B,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;IACvE,IAAI,MAAM,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,aAAa,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAA;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAA;IAExD,OAAO;QACL;YACE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;YACjB,eAAe,EAAE;gBACf,MAAM,EAAE,QAAQ;gBAChB,aAAa;aACd;YACD,OAAO,EAAE;gBACP,oBAAoB,EAAE,QAAQ;gBAC9B,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE;aACvD;YACD,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;SAChE;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-reexports.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/no-reexports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAMlC,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,UAuC9B,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
function isTypeOnly(node) {
|
|
2
|
+
return node['exportKind'] === 'type';
|
|
3
|
+
}
|
|
4
|
+
export const noReexports = {
|
|
5
|
+
meta: {
|
|
6
|
+
type: 'problem',
|
|
7
|
+
docs: {
|
|
8
|
+
description: 'Disallow re-exporting from other modules. Each module should export its own declarations.',
|
|
9
|
+
},
|
|
10
|
+
messages: {
|
|
11
|
+
noReexport: 'Do not re-export from "{{source}}". Import into the consuming module directly.\n' +
|
|
12
|
+
'Re-exports create hidden coupling and make it harder to trace where a symbol is defined.',
|
|
13
|
+
noBarrelExport: 'Do not use `export * from "{{source}}"`. Barrel files obscure the dependency graph.\n' +
|
|
14
|
+
'Import from the source module directly.',
|
|
15
|
+
},
|
|
16
|
+
schema: [],
|
|
17
|
+
},
|
|
18
|
+
create(context) {
|
|
19
|
+
return {
|
|
20
|
+
ExportAllDeclaration(node) {
|
|
21
|
+
if (isTypeOnly(node))
|
|
22
|
+
return;
|
|
23
|
+
context.report({
|
|
24
|
+
node,
|
|
25
|
+
messageId: 'noBarrelExport',
|
|
26
|
+
data: { source: String(node.source.value) },
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
ExportNamedDeclaration(node) {
|
|
30
|
+
if (node.source === null || node.source === undefined)
|
|
31
|
+
return;
|
|
32
|
+
if (isTypeOnly(node))
|
|
33
|
+
return;
|
|
34
|
+
context.report({
|
|
35
|
+
node,
|
|
36
|
+
messageId: 'noReexport',
|
|
37
|
+
data: { source: String(node.source.value) },
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=no-reexports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-reexports.js","sourceRoot":"","sources":["../../../src/lint/rules/no-reexports.ts"],"names":[],"mappings":"AAEA,SAAS,UAAU,CAAC,IAA6B;IAC/C,OAAQ,IAAgC,CAAC,YAAY,CAAC,KAAK,MAAM,CAAA;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,2FAA2F;SACzG;QACD,QAAQ,EAAE;YACR,UAAU,EACR,kFAAkF;gBAClF,0FAA0F;YAC5F,cAAc,EACZ,uFAAuF;gBACvF,yCAAyC;SAC5C;QACD,MAAM,EAAE,EAAE;KACX;IAED,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,oBAAoB,CAAC,IAAI;gBACvB,IAAI,UAAU,CAAC,IAA0C,CAAC;oBAAE,OAAM;gBAClE,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAC5C,CAAC,CAAA;YACJ,CAAC;YAED,sBAAsB,CAAC,IAAI;gBACzB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;oBAAE,OAAM;gBAC7D,IAAI,UAAU,CAAC,IAA0C,CAAC;oBAAE,OAAM;gBAClE,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,YAAY;oBACvB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAC5C,CAAC,CAAA;YACJ,CAAC;SACF,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface DepViolation {
|
|
2
|
+
readonly package: string;
|
|
3
|
+
readonly dependency: string;
|
|
4
|
+
readonly field: 'dependencies' | 'devDependencies';
|
|
5
|
+
readonly message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DepCheckResult {
|
|
8
|
+
readonly violations: readonly DepViolation[];
|
|
9
|
+
readonly packagesChecked: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function checkDependencies(cwd: string): DepCheckResult;
|
|
12
|
+
//# sourceMappingURL=check-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-deps.d.ts","sourceRoot":"","sources":["../../src/workspace/check-deps.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAA;IAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AASD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAa7D"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { readFileSync, existsSync, readdirSync } from 'node:fs';
|
|
2
|
+
import { join, dirname } from 'node:path';
|
|
3
|
+
const WRAPPED_PACKAGES = [
|
|
4
|
+
'postgres',
|
|
5
|
+
'pg',
|
|
6
|
+
'@neondatabase/serverless',
|
|
7
|
+
'drizzle-orm',
|
|
8
|
+
'fastify',
|
|
9
|
+
'zod',
|
|
10
|
+
'pino',
|
|
11
|
+
'jose',
|
|
12
|
+
];
|
|
13
|
+
const WRAPPED_SCOPES = [
|
|
14
|
+
'@fastify/',
|
|
15
|
+
'drizzle-orm/',
|
|
16
|
+
'pino/',
|
|
17
|
+
'zod/',
|
|
18
|
+
];
|
|
19
|
+
export function checkDependencies(cwd) {
|
|
20
|
+
const packages = discoverPackages(cwd);
|
|
21
|
+
const violations = [];
|
|
22
|
+
for (const pkg of packages) {
|
|
23
|
+
if (pkg.exempt)
|
|
24
|
+
continue;
|
|
25
|
+
checkPackageDeps(pkg, violations);
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
violations,
|
|
29
|
+
packagesChecked: packages.filter(p => !p.exempt).length,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function isBanned(dep, exemptDeps) {
|
|
33
|
+
if (exemptDeps.includes(dep))
|
|
34
|
+
return false;
|
|
35
|
+
if (WRAPPED_PACKAGES.includes(dep))
|
|
36
|
+
return true;
|
|
37
|
+
for (const scope of WRAPPED_SCOPES) {
|
|
38
|
+
if (dep.startsWith(scope)) {
|
|
39
|
+
if (!exemptDeps.some(e => dep.startsWith(e) || dep === e))
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
function checkPackageDeps(pkg, violations) {
|
|
46
|
+
const pkgPath = join(pkg.root, 'package.json');
|
|
47
|
+
if (!existsSync(pkgPath))
|
|
48
|
+
return;
|
|
49
|
+
let pkgJson;
|
|
50
|
+
try {
|
|
51
|
+
pkgJson = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const fields = ['dependencies', 'devDependencies'];
|
|
57
|
+
for (const field of fields) {
|
|
58
|
+
const deps = pkgJson[field];
|
|
59
|
+
if (typeof deps !== 'object' || deps === null)
|
|
60
|
+
continue;
|
|
61
|
+
for (const dep of Object.keys(deps)) {
|
|
62
|
+
if (dep === 'pipework')
|
|
63
|
+
continue;
|
|
64
|
+
if (!isBanned(dep, pkg.exemptDeps))
|
|
65
|
+
continue;
|
|
66
|
+
const wrapped = matchWrappedPackage(dep);
|
|
67
|
+
violations.push({
|
|
68
|
+
package: pkg.name,
|
|
69
|
+
dependency: dep,
|
|
70
|
+
field,
|
|
71
|
+
message: `Direct dependency on "${dep}" — this is wrapped by pipework.${wrapped !== null ? `\n Import from pipework instead of "${dep}".` : ''}`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function matchWrappedPackage(dep) {
|
|
77
|
+
if (dep === 'postgres' || dep === 'pg' || dep === '@neondatabase/serverless')
|
|
78
|
+
return 'pipe()';
|
|
79
|
+
if (dep === 'drizzle-orm' || dep.startsWith('drizzle-orm/'))
|
|
80
|
+
return 'pipe.define(), schema.*';
|
|
81
|
+
if (dep === 'fastify' || dep.startsWith('@fastify/'))
|
|
82
|
+
return 'surface.http(), fitting()';
|
|
83
|
+
if (dep === 'zod' || dep.startsWith('zod/'))
|
|
84
|
+
return 'pipe.define() shapes';
|
|
85
|
+
if (dep === 'pino' || dep.startsWith('pino/'))
|
|
86
|
+
return 'pipework logging';
|
|
87
|
+
if (dep === 'jose')
|
|
88
|
+
return 'pipework auth';
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
function discoverPackages(cwd) {
|
|
92
|
+
const workspaceFile = join(cwd, 'pnpm-workspace.yaml');
|
|
93
|
+
if (existsSync(workspaceFile)) {
|
|
94
|
+
return discoverFromPnpmWorkspace(cwd, workspaceFile);
|
|
95
|
+
}
|
|
96
|
+
const rootPkg = readPackageJson(cwd);
|
|
97
|
+
if (rootPkg !== null) {
|
|
98
|
+
const workspaces = rootPkg['workspaces'];
|
|
99
|
+
if (Array.isArray(workspaces)) {
|
|
100
|
+
return expandGlobs(cwd, workspaces);
|
|
101
|
+
}
|
|
102
|
+
if (typeof workspaces === 'object' && workspaces !== null) {
|
|
103
|
+
const packages = workspaces['packages'];
|
|
104
|
+
if (Array.isArray(packages)) {
|
|
105
|
+
return expandGlobs(cwd, packages);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
function discoverFromPnpmWorkspace(cwd, file) {
|
|
112
|
+
const content = readFileSync(file, 'utf-8');
|
|
113
|
+
const patterns = [];
|
|
114
|
+
for (const line of content.split('\n')) {
|
|
115
|
+
const match = line.match(/^\s*-\s+['"]?([^'"]+)['"]?\s*$/);
|
|
116
|
+
if (match?.[1] !== undefined && match[1] !== '.') {
|
|
117
|
+
patterns.push(match[1]);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return expandGlobs(cwd, patterns);
|
|
121
|
+
}
|
|
122
|
+
function expandGlobs(cwd, patterns) {
|
|
123
|
+
const packages = [];
|
|
124
|
+
for (const pattern of patterns) {
|
|
125
|
+
if (pattern === '.')
|
|
126
|
+
continue;
|
|
127
|
+
if (pattern.includes('*')) {
|
|
128
|
+
const base = pattern.replace(/\/?\*.*$/, '');
|
|
129
|
+
const baseDir = join(cwd, base);
|
|
130
|
+
if (!existsSync(baseDir))
|
|
131
|
+
continue;
|
|
132
|
+
for (const entry of readdirSync(baseDir, { withFileTypes: true })) {
|
|
133
|
+
if (!entry.isDirectory() || entry.name === 'node_modules')
|
|
134
|
+
continue;
|
|
135
|
+
const pkgDir = join(baseDir, entry.name);
|
|
136
|
+
const pkg = tryLoadPackage(pkgDir);
|
|
137
|
+
if (pkg !== null)
|
|
138
|
+
packages.push(pkg);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const pkgDir = join(cwd, pattern);
|
|
143
|
+
const pkg = tryLoadPackage(pkgDir);
|
|
144
|
+
if (pkg !== null)
|
|
145
|
+
packages.push(pkg);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return packages;
|
|
149
|
+
}
|
|
150
|
+
function tryLoadPackage(dir) {
|
|
151
|
+
const pkgJson = readPackageJson(dir);
|
|
152
|
+
if (pkgJson === null)
|
|
153
|
+
return null;
|
|
154
|
+
const name = typeof pkgJson['name'] === 'string' ? pkgJson['name'] : dirname(dir);
|
|
155
|
+
const boundaries = getBoundaryConfig(pkgJson);
|
|
156
|
+
return {
|
|
157
|
+
name,
|
|
158
|
+
root: dir,
|
|
159
|
+
exempt: boundaries?.exempt === true || boundaries?.dependencies?.exempt === true,
|
|
160
|
+
exemptDeps: boundaries?.dependencies?.allow ?? [],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function readPackageJson(dir) {
|
|
164
|
+
const file = join(dir, 'package.json');
|
|
165
|
+
if (!existsSync(file))
|
|
166
|
+
return null;
|
|
167
|
+
try {
|
|
168
|
+
return JSON.parse(readFileSync(file, 'utf-8'));
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function getBoundaryConfig(pkgJson) {
|
|
175
|
+
const pw = pkgJson['pipework'];
|
|
176
|
+
if (typeof pw !== 'object' || pw === null)
|
|
177
|
+
return null;
|
|
178
|
+
const boundaries = pw['boundaries'];
|
|
179
|
+
if (typeof boundaries !== 'object' || boundaries === null)
|
|
180
|
+
return null;
|
|
181
|
+
return boundaries;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=check-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-deps.js","sourceRoot":"","sources":["../../src/workspace/check-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAenD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAenD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,CAuB1E;AAyHD,eAAO,MAAM,qBAAqB,QAKtB,CAAA;AASZ,eAAO,MAAM,qBAAqB,QAWtB,CAAA"}
|
|
@@ -20,6 +20,8 @@ export function generateWorkspace(config) {
|
|
|
20
20
|
if (config.hasVitest) {
|
|
21
21
|
files.push(generateVitestConfig());
|
|
22
22
|
}
|
|
23
|
+
files.push(generatePreCommitHook());
|
|
24
|
+
files.push(generatePrePushHook());
|
|
23
25
|
for (const mod of config.modules) {
|
|
24
26
|
files.push(generateModulePackageJson(mod, config));
|
|
25
27
|
files.push(generateModuleTsconfig(mod));
|
|
@@ -162,6 +164,33 @@ function generateVitestConfig() {
|
|
|
162
164
|
content: VITEST_CONFIG_CONTENT,
|
|
163
165
|
};
|
|
164
166
|
}
|
|
167
|
+
function generatePreCommitHook() {
|
|
168
|
+
const script = [
|
|
169
|
+
'#!/bin/sh',
|
|
170
|
+
`# ${GENERATED_NOTICE}`,
|
|
171
|
+
'',
|
|
172
|
+
'npx pipework check --staged',
|
|
173
|
+
'',
|
|
174
|
+
].join('\n');
|
|
175
|
+
return {
|
|
176
|
+
relativePath: '.githooks/pre-commit',
|
|
177
|
+
content: script,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function generatePrePushHook() {
|
|
181
|
+
const script = [
|
|
182
|
+
'#!/bin/sh',
|
|
183
|
+
`# ${GENERATED_NOTICE}`,
|
|
184
|
+
'',
|
|
185
|
+
'npx pipework check --all',
|
|
186
|
+
'npx pipework test',
|
|
187
|
+
'',
|
|
188
|
+
].join('\n');
|
|
189
|
+
return {
|
|
190
|
+
relativePath: '.githooks/pre-push',
|
|
191
|
+
content: script,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
165
194
|
function generateModulePackageJson(mod, config) {
|
|
166
195
|
const moduleName = mod.config.name ?? `@${config.name}/${basename(mod.relativePath)}`;
|
|
167
196
|
const isPrivate = mod.config.private !== false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAG/C,MAAM,gBAAgB,GAAG,gFAAgF,CAAA;AAEzG,MAAM,eAAe,GAAqC;IACxD,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,cAAc;CAC7B,CAAA;AAED,MAAM,gBAAgB,GAAqC;IACzD,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAA;AAiBD,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,MAAM,KAAK,GAAoB,EAAE,CAAA;IAEjC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAA;IACzC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAElC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAElC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAClD,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,MAAM,GAAG;QACb,MAAM,gBAAgB,EAAE;QACxB,eAAe;QACf,2BAA2B;QAC3B,mCAAmC;QACnC,EAAE;QACF,8BAA8B;QAC9B,iFAAiF;QACjF,gGAAgG;QAChG,4BAA4B;QAC5B,GAAG;QACH,EAAE;QACF,wBAAwB;QACxB,qCAAqC;QACrC,8CAA8C;QAC9C,YAAY;QACZ,oDAAoD;QACpD,kDAAkD;QAClD,mCAAmC;QACnC,yBAAyB;QACzB,kEAAkE;QAClE,8BAA8B;QAC9B,iGAAiG;QACjG,sBAAsB;QACtB,KAAK;QACL,GAAG;QACH,EAAE;QACF,wBAAwB;QACxB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEZ,OAAO;QACL,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,MAAM;KAChB,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAuB;IACtD,MAAM,GAAG,GAA4B;QACnC,UAAU,EAAE,gBAAgB;QAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,aAAa;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACzB,OAAO,EAAE;YACP,UAAU,EAAE,yDAAyD;YACrE,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CACzE;SACF;QACD,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,eAAe,EAAE,QAAQ,CAAC;YACxB,QAAQ,EAAE,IAAI,MAAM,CAAC,eAAe,EAAE;YACtC,GAAG,gBAAgB;SACpB,CAAC;KACH,CAAA;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAA;IAE3B,OAAO;QACL,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;KAC7C,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB;IACpD,MAAM,QAAQ,GAAa,CAAC,GAAG,CAAC,CAAA;IAEhC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,KAAK,gBAAgB,EAAE;QACvB,WAAW;QACX,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClC,EAAE;KACH,CAAA;IAED,OAAO;QACL,YAAY,EAAE,qBAAqB;QACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,QAAQ,GAAG;QACf,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,0BAA0B,EAAE,IAAI;YAChC,wBAAwB,EAAE,IAAI;YAC9B,kCAAkC,EAAE,IAAI;YACxC,0BAA0B,EAAE,IAAI;YAChC,iBAAiB,EAAE,IAAI;YACvB,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;YAClB,gCAAgC,EAAE,IAAI;YACtC,iBAAiB,EAAE,IAAI;YACvB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;SAC3B;KACF,CAAA;IAED,OAAO;QACL,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;KAClD,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,gBAAgB,EAAE;IACxB,oDAAoD;IACpD,mCAAmC;IACnC,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,SAAS,oBAAoB;IAC3B,OAAO;QACL,YAAY,EAAE,kBAAkB;QAChC,OAAO,EAAE,qBAAqB;KAC/B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,gBAAgB,EAAE;IACxB,8CAA8C;IAC9C,0DAA0D;IAC1D,EAAE;IACF,+BAA+B;IAC/B,WAAW;IACX,+CAA+C;IAC/C,MAAM;IACN,IAAI;IACJ,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,SAAS,oBAAoB;IAC3B,OAAO;QACL,YAAY,EAAE,kBAAkB;QAChC,OAAO,EAAE,qBAAqB;KAC/B,CAAA;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,GAAmB,EACnB,MAAuB;IAEvB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAA;IACrF,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAA;IAE9C,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7E,MAAM,aAAa,GAAG,QAAQ,CAAC;QAC7B,GAAG,gBAAgB;QACnB,GAAG,MAAM,CAAC,eAAe;QACzB,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe;KAC9B,CAAC,CAAA;IAEF,MAAM,GAAG,GAA4B;QACnC,UAAU,EAAE,gBAAgB;QAC5B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO;QACtC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1B,CAAA;IAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3D,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,aAAa,CAAA;IAE9B,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;IAED,GAAG,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAA;IAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAA;IAE3B,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,eAAe;QAChD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;KAC7C,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAmB;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAChD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAA;IAE9D,MAAM,QAAQ,GAA4B;QACxC,OAAO,EAAE,WAAW;QACpB,eAAe,EAAE;YACf,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ;SACvB;QACD,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB,CAAA;IAED,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,gBAAgB;QACjD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;KAClD,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CACrB,OAAyF;IAEzF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE;SAC/D,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAsD,EAAE,CAAA;IAEpE,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAElD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,GAAqC;IACrD,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAE,CAAA;IACzB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAsCjD;AAoBD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAMnF"}
|
package/dist/workspace/sync.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { writeFileSync, mkdirSync, readFileSync } from 'node:fs';
|
|
1
|
+
import { writeFileSync, mkdirSync, readFileSync, chmodSync } from 'node:fs';
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { resolveModules } from './discover.js';
|
|
@@ -28,6 +28,9 @@ export function sync(input) {
|
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
30
|
writeFileSync(fullPath, file.content, 'utf-8');
|
|
31
|
+
if (file.relativePath.startsWith('.githooks/')) {
|
|
32
|
+
chmodSync(fullPath, 0o755);
|
|
33
|
+
}
|
|
31
34
|
written++;
|
|
32
35
|
}
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"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"}
|