@limrun/api 0.40.0 → 0.40.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.40.1 (2026-07-14)
4
+
5
+ Full Changelog: [v0.40.0...v0.40.1](https://github.com/limrun-inc/typescript-sdk/compare/v0.40.0...v0.40.1)
6
+
3
7
  ## 0.40.0 (2026-07-13)
4
8
 
5
9
  Full Changelog: [v0.39.8...v0.40.0](https://github.com/limrun-inc/typescript-sdk/compare/v0.39.8...v0.40.0)
@@ -5,12 +5,12 @@ export type IgnoreFnOptions = {
5
5
  additional?: IgnoreFn;
6
6
  /**
7
7
  * User-supplied force-includes (the CLI's --include): matches sync even when
8
- * gitignored or covered by the default Xcode excludes. Only `.git`,
9
- * `.DS_Store`, and the basis cache stay excluded. Note: the walk prunes
10
- * gitignore-excluded directories, so to rescue files under a wholly-ignored
11
- * parent the predicate must also match the parent directory paths (probed
12
- * with a trailing slash), e.g. `^ios/` reaches `ios/GeneratedKit/...` but
13
- * `GeneratedKit/` alone does not.
8
+ * covered by a built-in exclude, gitignored, or covered by the default Xcode
9
+ * excludes. The basis cache remains excluded to prevent sync loops. Note:
10
+ * the walk prunes excluded directories, so to rescue files under a
11
+ * wholly-excluded parent the predicate must also match the parent directory
12
+ * paths (probed with a trailing slash), e.g. `^ios/` reaches
13
+ * `ios/GeneratedKit/...` but `GeneratedKit/` alone does not.
14
14
  */
15
15
  include?: IgnoreFn;
16
16
  /**
@@ -27,21 +27,22 @@ export type IgnoreFnOptions = {
27
27
  /**
28
28
  * Builds the layered sync ignore predicate. First decisive answer wins:
29
29
  *
30
- * 1. `.git`, `.DS_Store`, the basis cache: excluded, never overridable.
31
- * 2. User include (--include): explicit intent beats the default excludes.
32
- * 3. Default Xcode/dependency excludes (when xcodeDefaults is set).
33
- * 4. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
30
+ * 1. The basis cache: excluded, never overridable.
31
+ * 2. User include (--include): explicit intent beats every other exclusion.
32
+ * 3. `.git` and `.DS_Store`.
33
+ * 4. Default Xcode/dependency excludes (when xcodeDefaults is set).
34
+ * 5. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
34
35
  * required to reproduce the build remotely). Gitignored projects are NOT
35
36
  * force-included: limbuild regenerates them from project.yml, and
36
37
  * exact-version holdouts force-sync theirs with `--include`.
37
- * 5. `.gitignore` chain: the root file, plus nested ones with git semantics
38
+ * 6. `.gitignore` chain: the root file, plus nested ones with git semantics
38
39
  * when xcodeDefaults is set (rules bind relative to their containing
39
40
  * directory, deeper files override shallower ones). Only a decisive
40
- * *exclude* short-circuits; a negation re-include defers to layer 6.
41
- * Directory pruning in the walk means only layers 2 and 4 can reach a
41
+ * *exclude* short-circuits; a negation re-include defers to layer 7.
42
+ * Directory pruning in the walk means only layers 2 and 5 can reach a
42
43
  * file whose parent directory is gitignore-excluded, and only when the
43
44
  * predicate matches the pruned parent directory paths too.
44
- * 6. User ignore (--ignore).
45
+ * 7. User ignore (--ignore).
45
46
  */
46
47
  export declare function createIgnoreFn(rootDir: string, options: IgnoreFnOptions): Promise<IgnoreFn>;
47
48
  //# sourceMappingURL=folder-sync-ignore.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"folder-sync-ignore.d.mts","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB,CAAC;AAoDF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyIjG"}
1
+ {"version":3,"file":"folder-sync-ignore.d.mts","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB,CAAC;AAoDF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0IjG"}
@@ -5,12 +5,12 @@ export type IgnoreFnOptions = {
5
5
  additional?: IgnoreFn;
6
6
  /**
7
7
  * User-supplied force-includes (the CLI's --include): matches sync even when
8
- * gitignored or covered by the default Xcode excludes. Only `.git`,
9
- * `.DS_Store`, and the basis cache stay excluded. Note: the walk prunes
10
- * gitignore-excluded directories, so to rescue files under a wholly-ignored
11
- * parent the predicate must also match the parent directory paths (probed
12
- * with a trailing slash), e.g. `^ios/` reaches `ios/GeneratedKit/...` but
13
- * `GeneratedKit/` alone does not.
8
+ * covered by a built-in exclude, gitignored, or covered by the default Xcode
9
+ * excludes. The basis cache remains excluded to prevent sync loops. Note:
10
+ * the walk prunes excluded directories, so to rescue files under a
11
+ * wholly-excluded parent the predicate must also match the parent directory
12
+ * paths (probed with a trailing slash), e.g. `^ios/` reaches
13
+ * `ios/GeneratedKit/...` but `GeneratedKit/` alone does not.
14
14
  */
15
15
  include?: IgnoreFn;
16
16
  /**
@@ -27,21 +27,22 @@ export type IgnoreFnOptions = {
27
27
  /**
28
28
  * Builds the layered sync ignore predicate. First decisive answer wins:
29
29
  *
30
- * 1. `.git`, `.DS_Store`, the basis cache: excluded, never overridable.
31
- * 2. User include (--include): explicit intent beats the default excludes.
32
- * 3. Default Xcode/dependency excludes (when xcodeDefaults is set).
33
- * 4. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
30
+ * 1. The basis cache: excluded, never overridable.
31
+ * 2. User include (--include): explicit intent beats every other exclusion.
32
+ * 3. `.git` and `.DS_Store`.
33
+ * 4. Default Xcode/dependency excludes (when xcodeDefaults is set).
34
+ * 5. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
34
35
  * required to reproduce the build remotely). Gitignored projects are NOT
35
36
  * force-included: limbuild regenerates them from project.yml, and
36
37
  * exact-version holdouts force-sync theirs with `--include`.
37
- * 5. `.gitignore` chain: the root file, plus nested ones with git semantics
38
+ * 6. `.gitignore` chain: the root file, plus nested ones with git semantics
38
39
  * when xcodeDefaults is set (rules bind relative to their containing
39
40
  * directory, deeper files override shallower ones). Only a decisive
40
- * *exclude* short-circuits; a negation re-include defers to layer 6.
41
- * Directory pruning in the walk means only layers 2 and 4 can reach a
41
+ * *exclude* short-circuits; a negation re-include defers to layer 7.
42
+ * Directory pruning in the walk means only layers 2 and 5 can reach a
42
43
  * file whose parent directory is gitignore-excluded, and only when the
43
44
  * predicate matches the pruned parent directory paths too.
44
- * 6. User ignore (--ignore).
45
+ * 7. User ignore (--ignore).
45
46
  */
46
47
  export declare function createIgnoreFn(rootDir: string, options: IgnoreFnOptions): Promise<IgnoreFn>;
47
48
  //# sourceMappingURL=folder-sync-ignore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"folder-sync-ignore.d.ts","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB,CAAC;AAoDF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyIjG"}
1
+ {"version":3,"file":"folder-sync-ignore.d.ts","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB,CAAC;AAoDF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0IjG"}
@@ -55,21 +55,22 @@ const XCODE_DEFAULT_EXCLUDE_PREFIXES = [
55
55
  /**
56
56
  * Builds the layered sync ignore predicate. First decisive answer wins:
57
57
  *
58
- * 1. `.git`, `.DS_Store`, the basis cache: excluded, never overridable.
59
- * 2. User include (--include): explicit intent beats the default excludes.
60
- * 3. Default Xcode/dependency excludes (when xcodeDefaults is set).
61
- * 4. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
58
+ * 1. The basis cache: excluded, never overridable.
59
+ * 2. User include (--include): explicit intent beats every other exclusion.
60
+ * 3. `.git` and `.DS_Store`.
61
+ * 4. Default Xcode/dependency excludes (when xcodeDefaults is set).
62
+ * 5. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
62
63
  * required to reproduce the build remotely). Gitignored projects are NOT
63
64
  * force-included: limbuild regenerates them from project.yml, and
64
65
  * exact-version holdouts force-sync theirs with `--include`.
65
- * 5. `.gitignore` chain: the root file, plus nested ones with git semantics
66
+ * 6. `.gitignore` chain: the root file, plus nested ones with git semantics
66
67
  * when xcodeDefaults is set (rules bind relative to their containing
67
68
  * directory, deeper files override shallower ones). Only a decisive
68
- * *exclude* short-circuits; a negation re-include defers to layer 6.
69
- * Directory pruning in the walk means only layers 2 and 4 can reach a
69
+ * *exclude* short-circuits; a negation re-include defers to layer 7.
70
+ * Directory pruning in the walk means only layers 2 and 5 can reach a
70
71
  * file whose parent directory is gitignore-excluded, and only when the
71
72
  * predicate matches the pruned parent directory paths too.
72
- * 6. User ignore (--ignore).
73
+ * 7. User ignore (--ignore).
73
74
  */
74
75
  async function createIgnoreFn(rootDir, options) {
75
76
  const rootResolved = path_1.default.resolve(rootDir);
@@ -141,15 +142,7 @@ async function createIgnoreFn(rootDir, options) {
141
142
  if (!normalized)
142
143
  return false;
143
144
  const withoutTrailingSlash = normalized.replace(/\/+$/, '');
144
- // 1. Never overridable.
145
- if (withoutTrailingSlash === '.git' ||
146
- withoutTrailingSlash.startsWith('.git/') ||
147
- withoutTrailingSlash.endsWith('/.git') ||
148
- withoutTrailingSlash.includes('/.git/') ||
149
- withoutTrailingSlash === '.DS_Store' ||
150
- withoutTrailingSlash.endsWith('/.DS_Store')) {
151
- return true;
152
- }
145
+ // 1. The basis cache must not sync itself, even when --include matches.
153
146
  if (shouldIgnoreBasisCache &&
154
147
  (withoutTrailingSlash === basisCacheRelative ||
155
148
  withoutTrailingSlash.startsWith(`${basisCacheRelative}/`))) {
@@ -158,7 +151,16 @@ async function createIgnoreFn(rootDir, options) {
158
151
  // 2. User include.
159
152
  if (options.include?.(normalized))
160
153
  return false;
161
- // 3. Default Xcode/dependency excludes.
154
+ // 3. Built-in excludes.
155
+ if (withoutTrailingSlash === '.git' ||
156
+ withoutTrailingSlash.startsWith('.git/') ||
157
+ withoutTrailingSlash.endsWith('/.git') ||
158
+ withoutTrailingSlash.includes('/.git/') ||
159
+ withoutTrailingSlash === '.DS_Store' ||
160
+ withoutTrailingSlash.endsWith('/.DS_Store')) {
161
+ return true;
162
+ }
163
+ // 4. Default Xcode/dependency excludes.
162
164
  if (options.xcodeDefaults) {
163
165
  for (const prefix of XCODE_DEFAULT_EXCLUDE_PREFIXES) {
164
166
  if (normalized.startsWith(prefix))
@@ -167,13 +169,13 @@ async function createIgnoreFn(rootDir, options) {
167
169
  if (normalized.includes('/xcuserdata/') || normalized.includes('.dSYM/'))
168
170
  return true;
169
171
  }
170
- // 4. Built-in force-include: gitignored xcconfigs are still required to
172
+ // 5. Built-in force-include: gitignored xcconfigs are still required to
171
173
  // reproduce the build remotely. Gitignored .xcodeproj bundles are NOT
172
174
  // force-included: limbuild regenerates them from project.yml, and
173
175
  // exact-version holdouts force-sync theirs with --include.
174
176
  if (withoutTrailingSlash.endsWith('.xcconfig'))
175
177
  return false;
176
- // 5. The .gitignore chain. Only a decisive *exclude* short-circuits; a
178
+ // 6. The .gitignore chain. Only a decisive *exclude* short-circuits; a
177
179
  // negation re-include (decision.ignored === false) still falls through to
178
180
  // the user --ignore layer, matching the pre-restructure precedence where
179
181
  // gitignore never overrode --ignore for a re-included path.
@@ -195,7 +197,7 @@ async function createIgnoreFn(rootDir, options) {
195
197
  }
196
198
  return true;
197
199
  }
198
- // 6. User ignore.
200
+ // 7. User ignore.
199
201
  if (options.additional?.(normalized))
200
202
  return true;
201
203
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"folder-sync-ignore.js","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folder-sync-ignore.js","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"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"}
@@ -51,21 +51,22 @@ const XCODE_DEFAULT_EXCLUDE_PREFIXES = [
51
51
  /**
52
52
  * Builds the layered sync ignore predicate. First decisive answer wins:
53
53
  *
54
- * 1. `.git`, `.DS_Store`, the basis cache: excluded, never overridable.
55
- * 2. User include (--include): explicit intent beats the default excludes.
56
- * 3. Default Xcode/dependency excludes (when xcodeDefaults is set).
57
- * 4. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
54
+ * 1. The basis cache: excluded, never overridable.
55
+ * 2. User include (--include): explicit intent beats every other exclusion.
56
+ * 3. `.git` and `.DS_Store`.
57
+ * 4. Default Xcode/dependency excludes (when xcodeDefaults is set).
58
+ * 5. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
58
59
  * required to reproduce the build remotely). Gitignored projects are NOT
59
60
  * force-included: limbuild regenerates them from project.yml, and
60
61
  * exact-version holdouts force-sync theirs with `--include`.
61
- * 5. `.gitignore` chain: the root file, plus nested ones with git semantics
62
+ * 6. `.gitignore` chain: the root file, plus nested ones with git semantics
62
63
  * when xcodeDefaults is set (rules bind relative to their containing
63
64
  * directory, deeper files override shallower ones). Only a decisive
64
- * *exclude* short-circuits; a negation re-include defers to layer 6.
65
- * Directory pruning in the walk means only layers 2 and 4 can reach a
65
+ * *exclude* short-circuits; a negation re-include defers to layer 7.
66
+ * Directory pruning in the walk means only layers 2 and 5 can reach a
66
67
  * file whose parent directory is gitignore-excluded, and only when the
67
68
  * predicate matches the pruned parent directory paths too.
68
- * 6. User ignore (--ignore).
69
+ * 7. User ignore (--ignore).
69
70
  */
70
71
  export async function createIgnoreFn(rootDir, options) {
71
72
  const rootResolved = path.resolve(rootDir);
@@ -137,15 +138,7 @@ export async function createIgnoreFn(rootDir, options) {
137
138
  if (!normalized)
138
139
  return false;
139
140
  const withoutTrailingSlash = normalized.replace(/\/+$/, '');
140
- // 1. Never overridable.
141
- if (withoutTrailingSlash === '.git' ||
142
- withoutTrailingSlash.startsWith('.git/') ||
143
- withoutTrailingSlash.endsWith('/.git') ||
144
- withoutTrailingSlash.includes('/.git/') ||
145
- withoutTrailingSlash === '.DS_Store' ||
146
- withoutTrailingSlash.endsWith('/.DS_Store')) {
147
- return true;
148
- }
141
+ // 1. The basis cache must not sync itself, even when --include matches.
149
142
  if (shouldIgnoreBasisCache &&
150
143
  (withoutTrailingSlash === basisCacheRelative ||
151
144
  withoutTrailingSlash.startsWith(`${basisCacheRelative}/`))) {
@@ -154,7 +147,16 @@ export async function createIgnoreFn(rootDir, options) {
154
147
  // 2. User include.
155
148
  if (options.include?.(normalized))
156
149
  return false;
157
- // 3. Default Xcode/dependency excludes.
150
+ // 3. Built-in excludes.
151
+ if (withoutTrailingSlash === '.git' ||
152
+ withoutTrailingSlash.startsWith('.git/') ||
153
+ withoutTrailingSlash.endsWith('/.git') ||
154
+ withoutTrailingSlash.includes('/.git/') ||
155
+ withoutTrailingSlash === '.DS_Store' ||
156
+ withoutTrailingSlash.endsWith('/.DS_Store')) {
157
+ return true;
158
+ }
159
+ // 4. Default Xcode/dependency excludes.
158
160
  if (options.xcodeDefaults) {
159
161
  for (const prefix of XCODE_DEFAULT_EXCLUDE_PREFIXES) {
160
162
  if (normalized.startsWith(prefix))
@@ -163,13 +165,13 @@ export async function createIgnoreFn(rootDir, options) {
163
165
  if (normalized.includes('/xcuserdata/') || normalized.includes('.dSYM/'))
164
166
  return true;
165
167
  }
166
- // 4. Built-in force-include: gitignored xcconfigs are still required to
168
+ // 5. Built-in force-include: gitignored xcconfigs are still required to
167
169
  // reproduce the build remotely. Gitignored .xcodeproj bundles are NOT
168
170
  // force-included: limbuild regenerates them from project.yml, and
169
171
  // exact-version holdouts force-sync theirs with --include.
170
172
  if (withoutTrailingSlash.endsWith('.xcconfig'))
171
173
  return false;
172
- // 5. The .gitignore chain. Only a decisive *exclude* short-circuits; a
174
+ // 6. The .gitignore chain. Only a decisive *exclude* short-circuits; a
173
175
  // negation re-include (decision.ignored === false) still falls through to
174
176
  // the user --ignore layer, matching the pre-restructure precedence where
175
177
  // gitignore never overrode --ignore for a re-included path.
@@ -191,7 +193,7 @@ export async function createIgnoreFn(rootDir, options) {
191
193
  }
192
194
  return true;
193
195
  }
194
- // 6. User ignore.
196
+ // 7. User ignore.
195
197
  if (options.additional?.(normalized))
196
198
  return true;
197
199
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"folder-sync-ignore.mjs","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folder-sync-ignore.mjs","sourceRoot":"","sources":["src/folder-sync-ignore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limrun/api",
3
- "version": "0.40.0",
3
+ "version": "0.40.1",
4
4
  "description": "The official TypeScript library for the Limrun API",
5
5
  "author": "Limrun <contact@limrun.com>",
6
6
  "types": "./index.d.ts",
@@ -15,12 +15,12 @@ export type IgnoreFnOptions = {
15
15
  additional?: IgnoreFn;
16
16
  /**
17
17
  * User-supplied force-includes (the CLI's --include): matches sync even when
18
- * gitignored or covered by the default Xcode excludes. Only `.git`,
19
- * `.DS_Store`, and the basis cache stay excluded. Note: the walk prunes
20
- * gitignore-excluded directories, so to rescue files under a wholly-ignored
21
- * parent the predicate must also match the parent directory paths (probed
22
- * with a trailing slash), e.g. `^ios/` reaches `ios/GeneratedKit/...` but
23
- * `GeneratedKit/` alone does not.
18
+ * covered by a built-in exclude, gitignored, or covered by the default Xcode
19
+ * excludes. The basis cache remains excluded to prevent sync loops. Note:
20
+ * the walk prunes excluded directories, so to rescue files under a
21
+ * wholly-excluded parent the predicate must also match the parent directory
22
+ * paths (probed with a trailing slash), e.g. `^ios/` reaches
23
+ * `ios/GeneratedKit/...` but `GeneratedKit/` alone does not.
24
24
  */
25
25
  include?: IgnoreFn;
26
26
  /**
@@ -88,21 +88,22 @@ const XCODE_DEFAULT_EXCLUDE_PREFIXES = [
88
88
  /**
89
89
  * Builds the layered sync ignore predicate. First decisive answer wins:
90
90
  *
91
- * 1. `.git`, `.DS_Store`, the basis cache: excluded, never overridable.
92
- * 2. User include (--include): explicit intent beats the default excludes.
93
- * 3. Default Xcode/dependency excludes (when xcodeDefaults is set).
94
- * 4. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
91
+ * 1. The basis cache: excluded, never overridable.
92
+ * 2. User include (--include): explicit intent beats every other exclusion.
93
+ * 3. `.git` and `.DS_Store`.
94
+ * 4. Default Xcode/dependency excludes (when xcodeDefaults is set).
95
+ * 5. Built-in force-include: `*.xcconfig` (gitignored xcconfigs are still
95
96
  * required to reproduce the build remotely). Gitignored projects are NOT
96
97
  * force-included: limbuild regenerates them from project.yml, and
97
98
  * exact-version holdouts force-sync theirs with `--include`.
98
- * 5. `.gitignore` chain: the root file, plus nested ones with git semantics
99
+ * 6. `.gitignore` chain: the root file, plus nested ones with git semantics
99
100
  * when xcodeDefaults is set (rules bind relative to their containing
100
101
  * directory, deeper files override shallower ones). Only a decisive
101
- * *exclude* short-circuits; a negation re-include defers to layer 6.
102
- * Directory pruning in the walk means only layers 2 and 4 can reach a
102
+ * *exclude* short-circuits; a negation re-include defers to layer 7.
103
+ * Directory pruning in the walk means only layers 2 and 5 can reach a
103
104
  * file whose parent directory is gitignore-excluded, and only when the
104
105
  * predicate matches the pruned parent directory paths too.
105
- * 6. User ignore (--ignore).
106
+ * 7. User ignore (--ignore).
106
107
  */
107
108
  export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions): Promise<IgnoreFn> {
108
109
  const rootResolved = path.resolve(rootDir);
@@ -182,7 +183,17 @@ export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions):
182
183
  if (!normalized) return false;
183
184
  const withoutTrailingSlash = normalized.replace(/\/+$/, '');
184
185
 
185
- // 1. Never overridable.
186
+ // 1. The basis cache must not sync itself, even when --include matches.
187
+ if (
188
+ shouldIgnoreBasisCache &&
189
+ (withoutTrailingSlash === basisCacheRelative ||
190
+ withoutTrailingSlash.startsWith(`${basisCacheRelative}/`))
191
+ ) {
192
+ return true;
193
+ }
194
+ // 2. User include.
195
+ if (options.include?.(normalized)) return false;
196
+ // 3. Built-in excludes.
186
197
  if (
187
198
  withoutTrailingSlash === '.git' ||
188
199
  withoutTrailingSlash.startsWith('.git/') ||
@@ -193,28 +204,19 @@ export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions):
193
204
  ) {
194
205
  return true;
195
206
  }
196
- if (
197
- shouldIgnoreBasisCache &&
198
- (withoutTrailingSlash === basisCacheRelative ||
199
- withoutTrailingSlash.startsWith(`${basisCacheRelative}/`))
200
- ) {
201
- return true;
202
- }
203
- // 2. User include.
204
- if (options.include?.(normalized)) return false;
205
- // 3. Default Xcode/dependency excludes.
207
+ // 4. Default Xcode/dependency excludes.
206
208
  if (options.xcodeDefaults) {
207
209
  for (const prefix of XCODE_DEFAULT_EXCLUDE_PREFIXES) {
208
210
  if (normalized.startsWith(prefix)) return true;
209
211
  }
210
212
  if (normalized.includes('/xcuserdata/') || normalized.includes('.dSYM/')) return true;
211
213
  }
212
- // 4. Built-in force-include: gitignored xcconfigs are still required to
214
+ // 5. Built-in force-include: gitignored xcconfigs are still required to
213
215
  // reproduce the build remotely. Gitignored .xcodeproj bundles are NOT
214
216
  // force-included: limbuild regenerates them from project.yml, and
215
217
  // exact-version holdouts force-sync theirs with --include.
216
218
  if (withoutTrailingSlash.endsWith('.xcconfig')) return false;
217
- // 5. The .gitignore chain. Only a decisive *exclude* short-circuits; a
219
+ // 6. The .gitignore chain. Only a decisive *exclude* short-circuits; a
218
220
  // negation re-include (decision.ignored === false) still falls through to
219
221
  // the user --ignore layer, matching the pre-restructure precedence where
220
222
  // gitignore never overrode --ignore for a re-included path.
@@ -237,7 +239,7 @@ export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions):
237
239
  }
238
240
  return true;
239
241
  }
240
- // 6. User ignore.
242
+ // 7. User ignore.
241
243
  if (options.additional?.(normalized)) return true;
242
244
  return false;
243
245
  };
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.40.0'; // x-release-please-version
1
+ export const VERSION = '0.40.1'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.40.0";
1
+ export declare const VERSION = "0.40.1";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.40.0";
1
+ export declare const VERSION = "0.40.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.40.0'; // x-release-please-version
4
+ exports.VERSION = '0.40.1'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.40.0'; // x-release-please-version
1
+ export const VERSION = '0.40.1'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map